summaryrefslogtreecommitdiff
path: root/filesystems/ntfs2btrfs
diff options
context:
space:
mode:
authorRobert Clausecker <fuz@FreeBSD.org>2024-09-27 12:48:46 +0200
committerRobert Clausecker <fuz@FreeBSD.org>2024-11-06 16:17:35 +0100
commit6e2da9672f79f44048d597f0f61e4646cdeade9d (patch)
treec92e4b3158e3419e8cec38e00227d08dcdaab3e9 /filesystems/ntfs2btrfs
parentmath/sdpa: speed up build (diff)
filesystems: add new category for file systems and related utilities
The filesystems category houses file systems and file system utilities. It is added mainly to turn the sysutils/fusefs-* pseudo-category into a proper one, but is also useful for the sundry of other file systems related ports found in the tree. Ports that seem like they belong there are moved to the new category. Two ports, sysutils/fusefs-funionfs and sysutils/fusefs-fusepak are not moved as they currently don't fetch and don't have TIMESTAMP set in their distinfo, but that is required to be able to push a rename of the port by the pre-receive hook. Approved by: portmgr (rene) Reviewed by: mat Pull Request: https://github.com/freebsd/freebsd-ports/pull/302 PR: 281988
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.