summaryrefslogtreecommitdiff
path: root/filesystems/ntfs2btrfs
diff options
context:
space:
mode:
Diffstat (limited to 'filesystems/ntfs2btrfs')
-rw-r--r--filesystems/ntfs2btrfs/Makefile25
-rw-r--r--filesystems/ntfs2btrfs/distinfo3
-rw-r--r--filesystems/ntfs2btrfs/files/patch-src_ntfs.cpp11
-rw-r--r--filesystems/ntfs2btrfs/pkg-descr5
4 files changed, 44 insertions, 0 deletions
diff --git a/filesystems/ntfs2btrfs/Makefile b/filesystems/ntfs2btrfs/Makefile
new file mode 100644
index 000000000000..7bc3fb88d004
--- /dev/null
+++ b/filesystems/ntfs2btrfs/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= ntfs2btrfs
+PORTVERSION= 20230501
+CATEGORIES= filesystems sysutils
+
+MAINTAINER= danfe@FreeBSD.org
+COMMENT= NTFS to Btrfs in-place conversion utility
+WWW= https://github.com/maharmstone/ntfs2btrfs
+
+LICENSE= GPLv2+
+
+BUILD_DEPENDS= ${LOCALBASE}/include/fmt/format.h:devel/libfmt
+LIB_DEPENDS= liblzo2.so:archivers/lzo2 libzstd.so:archivers/zstd
+
+USES= cmake pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= maharmstone
+
+PLIST_FILES= sbin/${PORTNAME} share/man/man8/${PORTNAME}.8.gz
+
+post-patch:
+# One should not try to mmap(2) disk devices on FreeBSD, it won't work
+ @${REINPLACE_CMD} -e '3449s,WIN32,_${OPSYS}__,' \
+ ${WRKSRC}/src/ntfs2btrfs.cpp
+
+.include <bsd.port.mk>
diff --git a/filesystems/ntfs2btrfs/distinfo b/filesystems/ntfs2btrfs/distinfo
new file mode 100644
index 000000000000..e0ecb1e9b75e
--- /dev/null
+++ b/filesystems/ntfs2btrfs/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1682974776
+SHA256 (maharmstone-ntfs2btrfs-20230501_GH0.tar.gz) = 15924a22e9d80e4ca28bf5524708dd8f69d840df1e781a659ce953fee7d90730
+SIZE (maharmstone-ntfs2btrfs-20230501_GH0.tar.gz) = 98816
diff --git a/filesystems/ntfs2btrfs/files/patch-src_ntfs.cpp b/filesystems/ntfs2btrfs/files/patch-src_ntfs.cpp
new file mode 100644
index 000000000000..74817c12412f
--- /dev/null
+++ b/filesystems/ntfs2btrfs/files/patch-src_ntfs.cpp
@@ -0,0 +1,11 @@
+--- src/ntfs.cpp.orig 2023-05-01 20:59:36 UTC
++++ src/ntfs.cpp
+@@ -465,7 +465,7 @@ string_view ntfs::find_sd(uint32_t id, ntfs_file& secu
+ }
+
+ static void walk_btree(const index_root& ir, const list<mapping>& mappings, const index_node_header& inh, ntfs& dev,
+- const invocable<const index_entry&, string_view> auto& func, unsigned int level) {
++ const function<void(const index_entry&, string_view)>& func, unsigned int level) {
+ auto ent = reinterpret_cast<const index_entry*>((uint8_t*)&inh + inh.first_entry);
+
+ do {
diff --git a/filesystems/ntfs2btrfs/pkg-descr b/filesystems/ntfs2btrfs/pkg-descr
new file mode 100644
index 000000000000..6845f5661a10
--- /dev/null
+++ b/filesystems/ntfs2btrfs/pkg-descr
@@ -0,0 +1,5 @@
+Ntfs2btrfs is a tool which does in-place conversion of Microsoft's NTFS
+file system to the open-source file system Btrfs, much as btrfs-convert
+does for ext2. The original file system image is saved as a reflink copy
+at `image/ntfs.img', and can be deleted to free up space if you want to
+keep the conversion.