summaryrefslogtreecommitdiff
path: root/sys-fs/ntfs3g
diff options
context:
space:
mode:
Diffstat (limited to 'sys-fs/ntfs3g')
-rw-r--r--sys-fs/ntfs3g/Manifest12
-rw-r--r--sys-fs/ntfs3g/files/CVE-2019-9755.patch63
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch25
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch43
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch379
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch12
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch81
-rw-r--r--sys-fs/ntfs3g/metadata.xml50
-rw-r--r--sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild106
-rw-r--r--sys-fs/ntfs3g/ntfs3g-2017.3.23.5-r1.ebuild4
10 files changed, 27 insertions, 748 deletions
diff --git a/sys-fs/ntfs3g/Manifest b/sys-fs/ntfs3g/Manifest
index deedaac9d9f5..92ead8b54d4e 100644
--- a/sys-fs/ntfs3g/Manifest
+++ b/sys-fs/ntfs3g/Manifest
@@ -1,11 +1,3 @@
-AUX CVE-2019-9755.patch 2111 BLAKE2B 5655cbef5789dc0de3f461f97f41e3c1d87fd64047a80ae5e2b848920afeff6fb464cec70c73ab367bb28bf77e7e73bf699f2fe9f491f380194abf058e96ba3c SHA512 2b08f609cca17740e610dd90f39c6187f5c92f74e66458df784da0fbff8490294ee5a942cb403f101fa446310f43af9d5ad451a7939e0dc84347d07912967f9f
-AUX ntfs3g-2014.2.15-no-split-usr.patch 1322 BLAKE2B efc71e28913d649484c1cf0d51dc34d8515cfba484a6a36a7cf158b142346255d403457ce0418148bbaa9e3e6e2cd494a509aa0c205ae944609844f4b9a04bc1 SHA512 232a1a7b84339c86758365564fce2058c3e652f833c6908245aa5f6f0e91d5c09cedcb978a1ebe62897c7288df4fe8671ba7085af403056742d897181e479e05
-AUX ntfs3g-2016.2.22-sysmacros.patch 911 BLAKE2B a53765dc5cd4ae8320584167fbf202b50827e07f4599ab8572d434cc61110bb190854b24e567b210843002b74245e5a7f271ea4548cc52a0d3d893eb622702b2 SHA512 34768ef1ebf42b125cdc4d86937042f21b7146c4c76c1ed37e66e59a4bfaa863b54f7dbcca14a9d842782113e6ac70b2a96e62022dc2c8f717ec43c9985bf79f
-AUX ntfs3g-2017.3.23-big-sectors.patch 11378 BLAKE2B 47e47a6c1370af864aa7e700e56c8db1c190ae80bd3ed1ceeeb6952a143c2c7d640580d3586a088c7307893f3509884401cf2b7c4395ce8e536246ae3ae923e5 SHA512 e23b1e3eeeb3397e42c1a09afe8b261d5193df3fd521434b64aad80fe0c6fbbf78199b92659cbd76b6c802d77e708a81e86f1d2d97b464a5c854ef821ac722a1
-AUX ntfs3g-2017.3.23-check-mftmirr.patch 554 BLAKE2B 9c7ab2b705df38089dc0413b8132ea08ccfec34001470dfc8fb926ccdaddece6f7047cef29a9073a59f7a63da8f86e01dde9f8c9e482ae932a1dd860b940bffd SHA512 b6b4eb4c6c71b944a8a30b5da69fed97eec3b3e404c180f2c3434c402d3cf5b68aa7a4deaf74b74c11230c02ffd0ce41c96fa49f9874a0105e3219821431647f
-AUX ntfs3g-2017.3.23-full-clusters.patch 2206 BLAKE2B 5e11e3a1f3e51cf46c09c2e83033429d3ca900b4531dee419afe742efa2285793a57f968a042725d06cd139980010f99e2e7e240d892838fb7ea67682fa834dc SHA512 dbcc69018fea460882d644b3c1b794eaf1580ca6e9edbdd9a9590bbb6333dae0fedb50878c010908e3e7c7a08e0d443e95f0f7144aad78f2f89c51e92d777523
-DIST ntfs-3g_ntfsprogs-2017.3.23.tgz 1259054 BLAKE2B 4f12a6061ef0c116f26225eb3fb5cb84e469b63710115fbfb54fa3802ea94192afa973a553742818ff6849b72919069ec92aca2d4d6f58d8cabca1b0fefa3abe SHA512 3a607f0d7be35204c992d8931de0404fbc52032c13b4240d2c5e6f285c318a28eb2a385d7cf5ac4cd445876aee5baa5753bb636ada0d870d84a9d3fdbce794ef
DIST ntfs-3g_ntfsprogs-2017.3.23AR.5.tgz 1278315 BLAKE2B d4f84bf744b12fec7faff82bd3d3048282a3cbcde2ca75e5d3a295206585c4cee68e25dff5fb20b034f516a3f2cd95c489105d9df810f8a9378024ef065b67d3 SHA512 8534970ba9f07999c5ff433144ad3a59640fb9a28fb30b37b5d736101e19f9fec1c222152338be382c894f972fce2b2a83680b85a28cf147cb5500b40a0a25cc
-EBUILD ntfs3g-2017.3.23-r3.ebuild 2930 BLAKE2B ea3cc4778fc6fc4af6d8e15c9c8fa7d2bb5ddda8c3d32202512cdfeca746c2d609147703b4f90fdc5875cd1dcf9d9816c86f02a1f3dd950a94c6f781b8271c4e SHA512 0be319c53b19da4c253d7b8b299a383e277b71ecce45e35f0f68adb0e98d0c5bf6cecf0aa3537b89b2734ce4ea67281f817dd238cad857962496c1cb2f7b58c8
-EBUILD ntfs3g-2017.3.23.5-r1.ebuild 2070 BLAKE2B 3943f547cf3c41d1bb71b68d271e1ad2321d961dff6f9e816382083f0128aff4852f284c45cc377826ccbfd7008d9887b8bae83cee017606b77aea25925c84be SHA512 041d87915b55729b157378c9524c0b5e743fb2707d0744e2123e9b8c752a1852f6b3007966e46d47663971c4b74734d51749ae02057c29ef3f778127d5fb4772
-MISC metadata.xml 1188 BLAKE2B cd693b8b1281d056a5e75baeb04019684a67033607e16479c58830fbf9a19b88ba6e263c5e0637b5501cd5fe2fd000f92e8212354576242fa31c513158b38774 SHA512 6d9aa23202090132c37fe6915aa300597f2c88474065749de36143b8a47090c5bdb2e6449dffbb3843c9b7d30254fdde849b1aa230641910189d00134bd88c85
+EBUILD ntfs3g-2017.3.23.5-r1.ebuild 2064 BLAKE2B e2caefd80f21d7715bb082aecbeb507a8d8f85f227fad64d5f256614f5c714e2bba04f9b90078dfdcac5e800ca74a3026675c068f84697ceeb4ef1e00703fa33 SHA512 bf3b15c47da0f1913e40737dc32cf7b82369adf5eba38b36a23658b5d7b925065d99762024f3005e136d17cad64f8e1db4cd4a26ca7bf16ca3843a74887e1726
+MISC metadata.xml 1071 BLAKE2B 745a88ce8a93612a3658b149ed33acad8bc30e66d65694c8096203a054482d9972798f0bdb7cc707fc35acb33303da37dac2bfcdcc3537ab0e61a307ff0cd152 SHA512 0d8df4e5d4b5e0ed52dc0a35b2fe81355859dfa01ff65b8b63a767bff87d5a4ea1741fd6f1243dc32f9f2d83566967d6aa4bee0b0f3d95997d8873833fc7ac31
diff --git a/sys-fs/ntfs3g/files/CVE-2019-9755.patch b/sys-fs/ntfs3g/files/CVE-2019-9755.patch
deleted file mode 100644
index caa079d607ba..000000000000
--- a/sys-fs/ntfs3g/files/CVE-2019-9755.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 85c1634a26faa572d3c558d4cf8aaaca5202d4e9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jean-pierre.andre@wanadoo.fr>
-Date: Wed, 19 Dec 2018 15:57:50 +0100
-Subject: [PATCH] Fixed reporting an error when failed to build the mountpoint
-
-The size check was inefficient because getcwd() uses an unsigned int
-argument.
----
- src/lowntfs-3g.c | 6 +++++-
- src/ntfs-3g.c | 6 +++++-
- 2 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c
-index 993867fa..0660439b 100644
---- a/src/lowntfs-3g.c
-+++ b/src/lowntfs-3g.c
-@@ -4411,7 +4411,8 @@ int main(int argc, char *argv[])
- else {
- ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
- if (ctx->abs_mnt_point) {
-- if (getcwd(ctx->abs_mnt_point,
-+ if ((strlen(opts.mnt_point) < PATH_MAX)
-+ && getcwd(ctx->abs_mnt_point,
- PATH_MAX - strlen(opts.mnt_point) - 1)) {
- strcat(ctx->abs_mnt_point, "/");
- strcat(ctx->abs_mnt_point, opts.mnt_point);
-@@ -4419,6 +4420,9 @@ int main(int argc, char *argv[])
- /* Solaris also wants the absolute mount point */
- opts.mnt_point = ctx->abs_mnt_point;
- #endif /* defined(__sun) && defined (__SVR4) */
-+ } else {
-+ free(ctx->abs_mnt_point);
-+ ctx->abs_mnt_point = (char*)NULL;
- }
- }
- }
-diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c
-index 6ce89fef..4e0912ae 100644
---- a/src/ntfs-3g.c
-+++ b/src/ntfs-3g.c
-@@ -4148,7 +4148,8 @@ int main(int argc, char *argv[])
- else {
- ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
- if (ctx->abs_mnt_point) {
-- if (getcwd(ctx->abs_mnt_point,
-+ if ((strlen(opts.mnt_point) < PATH_MAX)
-+ && getcwd(ctx->abs_mnt_point,
- PATH_MAX - strlen(opts.mnt_point) - 1)) {
- strcat(ctx->abs_mnt_point, "/");
- strcat(ctx->abs_mnt_point, opts.mnt_point);
-@@ -4156,6 +4157,9 @@ int main(int argc, char *argv[])
- /* Solaris also wants the absolute mount point */
- opts.mnt_point = ctx->abs_mnt_point;
- #endif /* defined(__sun) && defined (__SVR4) */
-+ } else {
-+ free(ctx->abs_mnt_point);
-+ ctx->abs_mnt_point = (char*)NULL;
- }
- }
- }
---
-2.26.1
-
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch b/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch
deleted file mode 100644
index 0228bfec330b..000000000000
--- a/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-we handle split /usr logic ourselves. this ends up breaking when building
-for an abi that doesn't exist in / (like cross-compiling) as the tests fail.
-
---- a/libntfs-3g/Makefile.in
-+++ b/libntfs-3g/Makefile.in
-@@ -912,19 +912,6 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
- uninstall-rootlibLTLIBRARIES
-
-
--# We may need to move .so files to root
--# And create ldscript or symbolic link from /usr
--install-exec-hook: install-rootlibLTLIBRARIES
--@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
--@INSTALL_LIBRARY_TRUE@ $(MV) -f "$(DESTDIR)/$(libdir)"/libntfs-3g.so* "$(DESTDIR)/$(rootlibdir)"; \
--@INSTALL_LIBRARY_TRUE@ fi
--@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
--@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ $(install_sh_PROGRAM) "libntfs-3g.script.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
--@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ fi
--@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
--@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ $(LN_S) "$(rootlibdir)/libntfs-3g.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
--@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ fi
--
- uninstall-local:
- @INSTALL_LIBRARY_TRUE@ $(RM) -f "$(DESTDIR)/$(rootlibdir)"/libntfs-3g.so*
-
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch
deleted file mode 100644
index 2fa1f2b34c88..000000000000
--- a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-include the headers that define major/minor/makedev in more places
-
-https://bugs.gentoo.org/580136
-
---- a/libntfs-3g/ioctl.c
-+++ b/libntfs-3g/ioctl.c
-@@ -57,6 +57,12 @@
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
-+#ifdef HAVE_SYS_MKDEV_H
-+#include <sys/mkdev.h>
-+#endif
-+#ifdef HAVE_SYS_SYSMACROS_H
-+#include <sys/sysmacros.h>
-+#endif
-
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
---- a/src/lowntfs-3g.c
-+++ b/src/lowntfs-3g.c
-@@ -76,6 +76,9 @@
- #ifdef HAVE_SYS_MKDEV_H
- #include <sys/mkdev.h>
- #endif
-+#ifdef HAVE_SYS_SYSMACROS_H
-+#include <sys/sysmacros.h>
-+#endif
-
- #if defined(__APPLE__) || defined(__DARWIN__)
- #include <sys/dirent.h>
---- a/src/ntfs-3g.c
-+++ b/src/ntfs-3g.c
-@@ -75,6 +75,9 @@
- #ifdef HAVE_SYS_MKDEV_H
- #include <sys/mkdev.h>
- #endif
-+#ifdef HAVE_SYS_SYSMACROS_H
-+#include <sys/sysmacros.h>
-+#endif
-
- #if defined(__APPLE__) || defined(__DARWIN__)
- #include <sys/dirent.h>
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch b/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch
deleted file mode 100644
index 1cb8bb6c46c0..000000000000
--- a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch
+++ /dev/null
@@ -1,379 +0,0 @@
---- a/libntfs-3g/bootsect.c.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/libntfs-3g/bootsect.c 2018-05-07 09:11:13.004710800 +0200
-@@ -38,6 +38,7 @@
- #include <errno.h>
- #endif
-
-+#include "param.h"
- #include "compat.h"
- #include "bootsect.h"
- #include "debug.h"
-@@ -61,6 +62,7 @@
- {
- u32 i;
- BOOL ret = FALSE;
-+ u16 sectors_per_cluster;
-
- ntfs_log_debug("Beginning bootsector check.\n");
-
-@@ -83,15 +85,27 @@
- case 1: case 2: case 4: case 8: case 16: case 32: case 64: case 128:
- break;
- default:
-- ntfs_log_error("Unexpected sectors per cluster value (%d).\n",
-- b->bpb.sectors_per_cluster);
-- goto not_ntfs;
-+ if ((b->bpb.sectors_per_cluster < 240)
-+ || (b->bpb.sectors_per_cluster > 249)) {
-+ if (b->bpb.sectors_per_cluster > 128)
-+ ntfs_log_error("Unexpected sectors"
-+ " per cluster value (code 0x%x)\n",
-+ b->bpb.sectors_per_cluster);
-+ else
-+ ntfs_log_error("Unexpected sectors"
-+ " per cluster value (%d).\n",
-+ b->bpb.sectors_per_cluster);
-+ goto not_ntfs;
-+ }
- }
-
- ntfs_log_debug("Checking cluster size.\n");
-- i = (u32)le16_to_cpu(b->bpb.bytes_per_sector) *
-- b->bpb.sectors_per_cluster;
-- if (i > 65536) {
-+ if (b->bpb.sectors_per_cluster > 128)
-+ sectors_per_cluster = 1 << (256 - b->bpb.sectors_per_cluster);
-+ else
-+ sectors_per_cluster = b->bpb.sectors_per_cluster;
-+ i = (u32)le16_to_cpu(b->bpb.bytes_per_sector) * sectors_per_cluster;
-+ if (i > NTFS_MAX_CLUSTER_SIZE) {
- ntfs_log_error("Unexpected cluster size (%d).\n", i);
- goto not_ntfs;
- }
-@@ -171,7 +185,7 @@
- int ntfs_boot_sector_parse(ntfs_volume *vol, const NTFS_BOOT_SECTOR *bs)
- {
- s64 sectors;
-- u8 sectors_per_cluster;
-+ u16 sectors_per_cluster;
- s8 c;
-
- /* We return -1 with errno = EINVAL on error. */
-@@ -186,7 +200,10 @@
- * below or equal the number_of_clusters) really belong in the
- * ntfs_boot_sector_is_ntfs but in this way we can just do this once.
- */
-- sectors_per_cluster = bs->bpb.sectors_per_cluster;
-+ if (bs->bpb.sectors_per_cluster > 128)
-+ sectors_per_cluster = 1 << (256 - bs->bpb.sectors_per_cluster);
-+ else
-+ sectors_per_cluster = bs->bpb.sectors_per_cluster;
- ntfs_log_debug("SectorsPerCluster = 0x%x\n", sectors_per_cluster);
- if (sectors_per_cluster & (sectors_per_cluster - 1)) {
- ntfs_log_error("sectors_per_cluster (%d) is not a power of 2."
---- a/ntfsprogs/mkntfs.8.in.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/ntfsprogs/mkntfs.8.in 2018-05-07 09:11:13.014132400 +0200
-@@ -132,7 +132,7 @@
- .TP
- \fB\-c\fR, \fB\-\-cluster\-size\fR BYTES
- Specify the size of clusters in bytes. Valid cluster size values are powers of
--two, with at least 256, and at most 65536 bytes per cluster. If omitted,
-+two, with at least 256, and at most 2097152 bytes (2MB) per cluster. If omitted,
- .B mkntfs
- uses 4096 bytes as the default cluster size.
- .sp
---- a/ntfsprogs/mkntfs.c.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/ntfsprogs/mkntfs.c 2018-05-07 09:11:13.035522300 +0200
-@@ -6,7 +6,7 @@
- * Copyright (c) 2002-2006 Szabolcs Szakacsits
- * Copyright (c) 2005 Erik Sornes
- * Copyright (c) 2007 Yura Pakhuchiy
-- * Copyright (c) 2010-2014 Jean-Pierre Andre
-+ * Copyright (c) 2010-2018 Jean-Pierre Andre
- *
- * This utility will create an NTFS 1.2 or 3.1 volume on a user
- * specified (block) device.
-@@ -119,6 +119,7 @@
- # endif
- #endif
-
-+#include "param.h"
- #include "security.h"
- #include "types.h"
- #include "attrib.h"
-@@ -287,7 +288,7 @@
- ntfs_log_info("Copyright (c) 2002-2006 Szabolcs Szakacsits\n");
- ntfs_log_info("Copyright (c) 2005 Erik Sornes\n");
- ntfs_log_info("Copyright (c) 2007 Yura Pakhuchiy\n");
-- ntfs_log_info("Copyright (c) 2010-2014 Jean-Pierre Andre\n");
-+ ntfs_log_info("Copyright (c) 2010-2018 Jean-Pierre Andre\n");
- ntfs_log_info("\n%s\n%s%s\n", ntfs_gpl, ntfs_bugs, ntfs_home);
- }
-
-@@ -3719,11 +3720,11 @@
- /*
- * For huge volumes, grow the cluster size until the number of
- * clusters fits into 32 bits or the cluster size exceeds the
-- * maximum limit of 64kiB.
-+ * maximum limit of NTFS_MAX_CLUSTER_SIZE.
- */
- while (volume_size >> (ffs(vol->cluster_size) - 1 + 32)) {
- vol->cluster_size <<= 1;
-- if (vol->cluster_size > 65535) {
-+ if (vol->cluster_size >= NTFS_MAX_CLUSTER_SIZE) {
- ntfs_log_error("Device is too large to hold an "
- "NTFS volume (maximum size is "
- "256TiB).\n");
-@@ -3744,15 +3745,18 @@
- "to, or larger than, the sector size.\n");
- return FALSE;
- }
-- if (vol->cluster_size > 128 * (u32)opts.sector_size) {
-+ /* Before Windows 10 Creators, the limit was 128 */
-+ if (vol->cluster_size > 4096 * (u32)opts.sector_size) {
- ntfs_log_error("The cluster size is invalid. It cannot be "
-- "more that 128 times the size of the sector "
-+ "more that 4096 times the size of the sector "
- "size.\n");
- return FALSE;
- }
-- if (vol->cluster_size > 65536) {
-+ if (vol->cluster_size > NTFS_MAX_CLUSTER_SIZE) {
- ntfs_log_error("The cluster size is invalid. The maximum "
-- "cluster size is 65536 bytes (64kiB).\n");
-+ "cluster size is %lu bytes (%lukiB).\n",
-+ (unsigned long)NTFS_MAX_CLUSTER_SIZE,
-+ (unsigned long)(NTFS_MAX_CLUSTER_SIZE >> 10));
- return FALSE;
- }
- vol->cluster_size_bits = ffs(vol->cluster_size) - 1;
-@@ -4387,6 +4391,7 @@
- u8 *sd;
- FILE_ATTR_FLAGS extend_flags;
- VOLUME_FLAGS volume_flags = const_cpu_to_le16(0);
-+ int sectors_per_cluster;
- int nr_sysfiles;
- int buf_sds_first_size;
- char *buf_sds;
-@@ -4639,8 +4644,11 @@
- * already inserted, so no need to worry about these things.
- */
- bs->bpb.bytes_per_sector = cpu_to_le16(opts.sector_size);
-- bs->bpb.sectors_per_cluster = (u8)(g_vol->cluster_size /
-- opts.sector_size);
-+ sectors_per_cluster = g_vol->cluster_size / opts.sector_size;
-+ if (sectors_per_cluster > 128)
-+ bs->bpb.sectors_per_cluster = 257 - ffs(sectors_per_cluster);
-+ else
-+ bs->bpb.sectors_per_cluster = sectors_per_cluster;
- bs->bpb.media_type = 0xf8; /* hard disk */
- bs->bpb.sectors_per_track = cpu_to_le16(opts.sectors_per_track);
- ntfs_log_debug("sectors per track = %ld (0x%lx)\n",
---- a/ntfsprogs/ntfsclone.c.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/ntfsprogs/ntfsclone.c 2018-05-07 09:11:38.245007100 +0200
-@@ -3,7 +3,7 @@
- *
- * Copyright (c) 2003-2006 Szabolcs Szakacsits
- * Copyright (c) 2004-2006 Anton Altaparmakov
-- * Copyright (c) 2010-2016 Jean-Pierre Andre
-+ * Copyright (c) 2010-2018 Jean-Pierre Andre
- * Special image format support copyright (c) 2004 Per Olofsson
- *
- * Clone NTFS data and/or metadata to a sparse file, image, device or stdout.
-@@ -71,6 +71,7 @@
- */
- #define NTFS_DO_NOT_CHECK_ENDIANS
-
-+#include "param.h"
- #include "debug.h"
- #include "types.h"
- #include "support.h"
-@@ -270,7 +271,6 @@
-
- #define LAST_METADATA_INODE 11
-
--#define NTFS_MAX_CLUSTER_SIZE 65536
- #define NTFS_SECTOR_SIZE 512
-
- #define rounded_up_division(a, b) (((a) + (b - 1)) / (b))
-@@ -393,7 +393,7 @@
- "Efficiently clone, image, restore or rescue an NTFS Volume.\n\n"
- "Copyright (c) 2003-2006 Szabolcs Szakacsits\n"
- "Copyright (c) 2004-2006 Anton Altaparmakov\n"
-- "Copyright (c) 2010-2016 Jean-Pierre Andre\n\n");
-+ "Copyright (c) 2010-2018 Jean-Pierre Andre\n\n");
- fprintf(stderr, "%s\n%s%s", ntfs_gpl, ntfs_bugs, ntfs_home);
- exit(0);
- }
-@@ -756,7 +756,7 @@
-
- static void copy_cluster(int rescue, u64 rescue_lcn, u64 lcn)
- {
-- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */
-+ char *buff;
- /* vol is NULL if opt.restore_image is set */
- s32 csize = le32_to_cpu(image_hdr.cluster_size);
- BOOL backup_bootsector;
-@@ -783,6 +783,10 @@
- }
- }
-
-+ buff = (char*)ntfs_malloc(csize);
-+ if (!buff)
-+ err_exit("Not enough memory");
-+
- // need reading when not about to write ?
- if (read_all(fd, buff, csize) == -1) {
-
-@@ -858,6 +862,7 @@
- perr_printf("Write failed");
- #endif
- }
-+ free(buff);
- }
-
- static s64 lseek_out(int fd, s64 pos, int mode)
-@@ -995,7 +1000,11 @@
- struct progress_bar *progress, u64 *p_counter)
- {
- s64 i;
-- char buff[NTFS_MAX_CLUSTER_SIZE];
-+ char *buff;
-+
-+ buff = (char*)ntfs_malloc(csize);
-+ if (!buff)
-+ err_exit("Not enough memory");
-
- memset(buff, 0, csize);
-
-@@ -1004,6 +1013,7 @@
- perr_exit("write_all");
- progress_update(progress, ++(*p_counter));
- }
-+ free(buff);
- }
-
- static void restore_image(void)
-@@ -1492,7 +1502,7 @@
-
- static void copy_wipe_mft(ntfs_walk_clusters_ctx *image, runlist *rl)
- {
-- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */
-+ char *buff;
- void *fd;
- s64 mft_no;
- u32 mft_record_size;
-@@ -1522,6 +1532,10 @@
- clusters_per_set = mft_record_size/csize;
- records_per_set = 1;
- }
-+ buff = (char*)ntfs_malloc(mft_record_size);
-+ if (!buff)
-+ err_exit("Not enough memory");
-+
- mft_no = 0;
- ri = rj = 0;
- wi = wj = 0;
-@@ -1554,6 +1568,7 @@
- }
- }
- image->current_lcn = current_lcn;
-+ free(buff);
- }
-
- /*
-@@ -1566,7 +1581,7 @@
-
- static void copy_wipe_i30(ntfs_walk_clusters_ctx *image, runlist *rl)
- {
-- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */
-+ char *buff;
- void *fd;
- u32 indx_record_size;
- u32 csize;
-@@ -1595,6 +1610,10 @@
- clusters_per_set = indx_record_size/csize;
- records_per_set = 1;
- }
-+ buff = (char*)ntfs_malloc(indx_record_size);
-+ if (!buff)
-+ err_exit("Not enough memory");
-+
- ri = rj = 0;
- wi = wj = 0;
- if (rl[ri].length)
-@@ -1627,6 +1646,7 @@
- }
- }
- image->current_lcn = current_lcn;
-+ free(buff);
- }
-
- static void dump_clusters(ntfs_walk_clusters_ctx *image, runlist *rl)
---- a/ntfsprogs/ntfsresize.c.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/ntfsprogs/ntfsresize.c 2018-05-07 09:11:13.076883400 +0200
-@@ -59,6 +59,7 @@
- #include <fcntl.h>
- #endif
-
-+#include "param.h"
- #include "debug.h"
- #include "types.h"
- #include "support.h"
-@@ -243,8 +244,6 @@
- #define DIRTY_INODE (1)
- #define DIRTY_ATTRIB (2)
-
--#define NTFS_MAX_CLUSTER_SIZE (65536)
--
- static s64 rounded_up_division(s64 numer, s64 denom)
- {
- return (numer + (denom - 1)) / denom;
-@@ -404,7 +403,7 @@
- printf("Copyright (c) 2002-2005 Anton Altaparmakov\n");
- printf("Copyright (c) 2002-2003 Richard Russon\n");
- printf("Copyright (c) 2007 Yura Pakhuchiy\n");
-- printf("Copyright (c) 2011-2016 Jean-Pierre Andre\n");
-+ printf("Copyright (c) 2011-2018 Jean-Pierre Andre\n");
- printf("\n%s\n%s%s", ntfs_gpl, ntfs_bugs, ntfs_home);
- }
-
-@@ -1849,9 +1848,13 @@
- static void copy_clusters(ntfs_resize_t *resize, s64 dest, s64 src, s64 len)
- {
- s64 i;
-- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */
-+ char *buff;
- ntfs_volume *vol = resize->vol;
-
-+ buff = (char*)ntfs_malloc(vol->cluster_size);
-+ if (!buff)
-+ perr_exit("ntfs_malloc");
-+
- for (i = 0; i < len; i++) {
-
- lseek_to_cluster(vol, src + i);
-@@ -1875,6 +1878,7 @@
- resize->relocations++;
- progress_update(&resize->progress, resize->relocations);
- }
-+ free(buff);
- }
-
- static void relocate_clusters(ntfs_resize_t *r, runlist *dest_rl, s64 src_lcn)
---- a/include/ntfs-3g/param.h.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/include/ntfs-3g/param.h 2018-05-07 09:11:13.088302600 +0200
-@@ -40,6 +40,13 @@
- };
-
- /*
-+ * Parameters for formatting
-+ */
-+
-+ /* Up to Windows 10, the cluster size was limited to 64K */
-+#define NTFS_MAX_CLUSTER_SIZE 2097152 /* Windows 10 Creators allows 2MB */
-+
-+/*
- * Parameters for compression
- */
-
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch b/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch
deleted file mode 100644
index f56eadc882f9..000000000000
--- a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/libntfs-3g/volume.c.ref 2017-03-23 10:42:44.000000000 +0100
-+++ b/libntfs-3g/volume.c 2017-12-20 08:11:51.842424300 +0100
-@@ -959,7 +959,8 @@
- vol->mftmirr_size = l;
- }
- ntfs_log_debug("Comparing $MFTMirr to $MFT...\n");
-- for (i = 0; i < vol->mftmirr_size; ++i) {
-+ /* Windows 10 does not update the full $MFTMirr any more */
-+ for (i = 0; (i < vol->mftmirr_size) && (i < FILE_first_user); ++i) {
- MFT_RECORD *mrec, *mrec2;
- const char *ESTR[12] = { "$MFT", "$MFTMirr", "$LogFile",
- "$Volume", "$AttrDef", "root directory", "$Bitmap",
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch b/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch
deleted file mode 100644
index 7d2496d372d5..000000000000
--- a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- a/ntfsprogs/ntfsclone.c 2018-05-16 18:46:47.114964000 +0200
-+++ b/ntfsprogs/ntfsclone.c 2018-07-16 14:03:20.273809100 +0200
-@@ -776,6 +776,10 @@
-
- /* possible partial cluster holding the backup boot sector */
- backup_bootsector = (lcn + 1)*csize >= full_device_size;
-+ buff = (char*)ntfs_malloc(csize);
-+ if (!buff)
-+ err_exit("Not enough memory");
-+
- if (backup_bootsector) {
- csize = full_device_size - lcn*csize;
- if (csize < 0) {
-@@ -783,10 +787,6 @@
- }
- }
-
-- buff = (char*)ntfs_malloc(csize);
-- if (!buff)
-- err_exit("Not enough memory");
--
- // need reading when not about to write ?
- if (read_all(fd, buff, csize) == -1) {
-
-@@ -1507,6 +1507,7 @@
- s64 mft_no;
- u32 mft_record_size;
- u32 csize;
-+ u32 buff_size;
- u32 bytes_per_sector;
- u32 records_per_set;
- u32 clusters_per_set;
-@@ -1524,15 +1525,18 @@
- /*
- * Depending on the sizes, there may be several records
- * per cluster, or several clusters per record.
-+ * Anyway, full clusters are needed for rescuing bad ones.
- */
- if (csize >= mft_record_size) {
- records_per_set = csize/mft_record_size;
- clusters_per_set = 1;
-+ buff_size = csize;
- } else {
- clusters_per_set = mft_record_size/csize;
- records_per_set = 1;
-+ buff_size = mft_record_size;
- }
-- buff = (char*)ntfs_malloc(mft_record_size);
-+ buff = (char*)ntfs_malloc(buff_size);
- if (!buff)
- err_exit("Not enough memory");
-
-@@ -1585,6 +1589,7 @@
- void *fd;
- u32 indx_record_size;
- u32 csize;
-+ u32 buff_size;
- u32 bytes_per_sector;
- u32 records_per_set;
- u32 clusters_per_set;
-@@ -1601,16 +1606,19 @@
- /*
- * Depending on the sizes, there may be several records
- * per cluster, or several clusters per record.
-+ * Anyway, full clusters are needed for rescuing bad ones.
- */
- indx_record_size = image->ni->vol->indx_record_size;
- if (csize >= indx_record_size) {
- records_per_set = csize/indx_record_size;
- clusters_per_set = 1;
-+ buff_size = csize;
- } else {
- clusters_per_set = indx_record_size/csize;
- records_per_set = 1;
-+ buff_size = indx_record_size;
- }
-- buff = (char*)ntfs_malloc(indx_record_size);
-+ buff = (char*)ntfs_malloc(buff_size);
- if (!buff)
- err_exit("Not enough memory");
-
diff --git a/sys-fs/ntfs3g/metadata.xml b/sys-fs/ntfs3g/metadata.xml
index 20cef377f9b7..e443af385903 100644
--- a/sys-fs/ntfs3g/metadata.xml
+++ b/sys-fs/ntfs3g/metadata.xml
@@ -1,31 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>chutzpah@gentoo.org</email>
-</maintainer>
-<maintainer type="project">
- <email>base-system@gentoo.org</email>
- <name>Gentoo Base System</name>
-</maintainer>
-<longdescription lang="en">
-The ntfs-3g driver is an open source, GPL licensed, third generation Linux
-NTFS driver for 32-bit, little-endian architectures which was implemented
-by the Linux-NTFS project. It provides full read-write access to NTFS,
-excluding access to encrypted files, writing compressed files, changing
-file ownership, access right.
-</longdescription>
-<use>
- <flag name="external-fuse">
- Use external FUSE library instead of internal one. Must be disabled
- for unprivileged mounting to work.
- </flag>
- <flag name="ntfsdecrypt">Build and install the ntfsdecrypt application.</flag>
- <flag name="ntfsprogs">Include internal version of ntfsprogs.</flag>
-</use>
-<upstream>
- <bugs-to>http://tuxera.com/forum/</bugs-to>
- <remote-id type="cpe">cpe:/a:ntfs-3g:ntfs-3g</remote-id>
- <remote-id type="sourceforge">ntfs-3g</remote-id>
-</upstream>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <longdescription lang="en">
+ The ntfs-3g driver is an open source, GPL licensed, third generation Linux
+ NTFS driver for 32-bit, little-endian architectures which was implemented
+ by the Linux-NTFS project. It provides full read-write access to NTFS,
+ excluding access to encrypted files, writing compressed files, changing
+ file ownership, access right.
+ </longdescription>
+ <use>
+ <flag name="ntfsdecrypt">Build and install the ntfsdecrypt application.</flag>
+ <flag name="ntfsprogs">Include internal version of ntfsprogs.</flag>
+ </use>
+ <upstream>
+ <bugs-to>http://tuxera.com/forum/</bugs-to>
+ <remote-id type="cpe">cpe:/a:ntfs-3g:ntfs-3g</remote-id>
+ <remote-id type="sourceforge">ntfs-3g</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild b/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild
deleted file mode 100644
index 2915df67727f..000000000000
--- a/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit linux-info udev toolchain-funcs libtool
-
-MY_PN=${PN/3g/-3g}
-MY_P=${MY_PN}_ntfsprogs-${PV}
-
-DESCRIPTION="Open source read-write NTFS driver that runs under FUSE"
-HOMEPAGE="http://www.tuxera.com/community/ntfs-3g-download/"
-SRC_URI="http://tuxera.com/opensource/${MY_P}.tgz"
-
-LICENSE="GPL-2"
-# The subslot matches the SONAME major #.
-SLOT="0/88"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
-IUSE="acl debug +external-fuse ntfsdecrypt +ntfsprogs static-libs suid xattr"
-
-RDEPEND="
- ntfsdecrypt? (
- >=dev-libs/libgcrypt-1.2.2:0
- >=net-libs/gnutls-1.4.4
- )
- external-fuse? (
- >=sys-fs/fuse-2.8.0:0
- )
-"
-DEPEND="${RDEPEND}
- sys-apps/attr
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-S="${WORKDIR}/${MY_P}"
-
-DOCS="AUTHORS ChangeLog CREDITS README"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2014.2.15-no-split-usr.patch
- "${FILESDIR}"/${PN}-2016.2.22-sysmacros.patch #580136
- # Fedora fixes
- "${FILESDIR}"/${PN}-2017.3.23-check-mftmirr.patch
- "${FILESDIR}"/${PN}-2017.3.23-big-sectors.patch
- "${FILESDIR}"/${PN}-2017.3.23-full-clusters.patch
- "${FILESDIR}"/CVE-2019-9755.patch
-)
-
-pkg_setup() {
- if use external-fuse && use kernel_linux; then
- if kernel_is lt 2 6 9; then
- die "Your kernel is too old."
- fi
- CONFIG_CHECK="~FUSE_FS"
- FUSE_FS_WARNING="You need to have FUSE module built to use ntfs-3g"
- linux-info_pkg_setup
- fi
-}
-
-src_prepare() {
- default
- # Keep the symlinks in the same place we put the main binaries.
- # Having them in / when all the progs are in /usr is pointless.
- sed -i \
- -e 's:/sbin:$(sbindir):g' \
- {ntfsprogs,src}/Makefile.in || die #578336
- # Note: patches apply to Makefile.in, so don't run autotools here.
- elibtoolize
-}
-
-src_configure() {
- # disable hd library until we have the right library in the tree and
- # don't links to hwinfo one causing issues like bug #602360
- tc-ld-disable-gold
- # passing --exec-prefix is needed as the build system is trying to be clever
- # and install itself into / instead of /usr in order to be compatible with
- # separate-/usr setups (which we don't support without an initrd).
- econf \
- --exec-prefix="${EPREFIX}"/usr \
- $(use_enable debug) \
- --enable-ldscript \
- --disable-ldconfig \
- $(use_enable acl posix-acls) \
- $(use_enable xattr xattr-mappings) \
- $(use_enable ntfsdecrypt crypto) \
- $(use_enable ntfsprogs) \
- $(use_enable ntfsprogs quarantined) \
- --without-uuid \
- --without-hd \
- --enable-extras \
- $(use_enable static-libs static) \
- --with-fuse=$(usex external-fuse external internal)
-}
-
-src_install() {
- default
-
- use suid && fperms u+s /usr/bin/ntfs-3g
- # Not needed with the link of mount.ntfs being created, causes
- # issues like bug #635080
-# udev_dorules "${FILESDIR}"/99-ntfs3g.rules
- dosym mount.ntfs-3g /usr/sbin/mount.ntfs #374197
-
- find "${D}" -name '*.la' -type f -delete || die
-}
diff --git a/sys-fs/ntfs3g/ntfs3g-2017.3.23.5-r1.ebuild b/sys-fs/ntfs3g/ntfs3g-2017.3.23.5-r1.ebuild
index e0ede00ae196..75a364e80508 100644
--- a/sys-fs/ntfs3g/ntfs3g-2017.3.23.5-r1.ebuild
+++ b/sys-fs/ntfs3g/ntfs3g-2017.3.23.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -15,7 +15,7 @@ SRC_URI="https://jp-andre.pagesperso-orange.fr/${MY_P}.tgz"
LICENSE="GPL-2"
# The subslot matches the SONAME major #.
SLOT="0/885"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
IUSE="acl debug ntfsdecrypt +ntfsprogs static-libs suid xattr"
RDEPEND="