diff --git a/CMakeLists.txt b/CMakeLists.txt index 90d2bc9..6d634f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ else() cmake_minimum_required(VERSION 3.14.3) endif() -project(ntfs2btrfs VERSION 20210523) +project(ntfs2btrfs VERSION 20210923) include(GNUInstallDirs) diff --git a/README.md b/README.md index f8e5ac6..6c108fd 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ On Windows, from an Administrator command prompt: `ntfs2btrfs.exe D:\` -Bear in mind that it won't work with your boot drive or a drive with a -pagefile on it. +Bear in mind that it won't work with your boot drive or a drive containing a +pagefile that's currently in use. On Linux, as root: @@ -39,7 +39,7 @@ download the latest Zip file. For Linux: * [Arch](https://aur.archlinux.org/packages/ntfs2btrfs-git) (thanks to [nicman23](https://github.com/nicman23)) * [Fedora](https://src.fedoraproject.org/rpms/ntfs2btrfs) (thanks to [Conan-Kudo](https://github.com/Conan-Kudo)) -* [Gentoo ebuild](https://raw.githubusercontent.com/maharmstone/ntfs2btrfs/master/ntfs2btrfs-20210523.ebuild) +* [Gentoo ebuild](https://raw.githubusercontent.com/maharmstone/ntfs2btrfs/master/ntfs2btrfs-20210923.ebuild) * [Debian & Ubuntu](https://sid.ethz.ch/debian/ntfs2btrfs/) (thanks to [alexmyczko](https://github.com/alexmyczko)) For other distributions or operating systems, you will need to compile it yourself - see @@ -48,6 +48,16 @@ below. Changelog --------- +* 20210923 + * Added (Btrfs) compression support (zlib, lzo, and zstd) + * Added support for other hash algorithms: xxhash, sha256, and blake2 + * Added support for rolling back to NTFS + * Added support for NT4-style security descriptors + * Increased conversion speed for volume with many inodes + * Fixed bug when fragmented file was in superblock location + * Fixed buffer overflow when reading security descriptors + * Fixed bug where filesystems would be corrupted in a way that `btrfs check` doesn't pick up + * 20210523 * Improved handling of large compressed files @@ -82,6 +92,10 @@ On Linux: You'll also need [libfmt](https://github.com/fmtlib/fmt) installed - it should be in your package manager. +Compression support requires zlib, lzo, and/or zstd - again, they will be in your +package manager. See also the cmake options WITH_ZLIB, WITH_LZO, and WITH_ZSTD, +if you want to disable this. + What works ---------- @@ -92,11 +106,11 @@ What works * Security descriptors * Alternate data streams * DOS attributes (hidden, system, etc.) +* Rollback to original NTFS image What doesn't work ----------------- -* Rollback to original NTFS image * Windows' old extended attributes (you're not using these) * Large (i.e >16KB) ADSes (you're not using these either) * Preservation of LXSS metadata diff --git a/ntfs2btrfs-20210523.ebuild b/ntfs2btrfs-20210523.ebuild deleted file mode 100644 index a7523eb..0000000 --- a/ntfs2btrfs-20210523.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake - -CMAKE_MAKEFILE_GENERATOR="emake" - -DESCRIPTION="Conversion tool from NTFS to Btrfs" -HOMEPAGE="https://github.com/maharmstone/ntfs2btrfs" -SRC_URI="https://github.com/maharmstone/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="" - -DEPEND="dev-libs/libfmt" -RDEPEND="${DEPEND}" -BDEPEND="" - -src_prepare() { - cmake_src_prepare -} - -src_configure() { - cmake_src_configure -} - diff --git a/ntfs2btrfs-20210923.ebuild b/ntfs2btrfs-20210923.ebuild new file mode 100644 index 0000000..9dc936a --- /dev/null +++ b/ntfs2btrfs-20210923.ebuild @@ -0,0 +1,42 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Conversion tool from NTFS to Btrfs" +HOMEPAGE="https://github.com/maharmstone/ntfs2btrfs" + +if [[ ${PV} = *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/maharmstone/ntfs2btrfs.git" +else + SRC_URI="https://github.com/maharmstone/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="+zlib +lzo +zstd" + +DEPEND="dev-libs/libfmt + zlib? ( sys-libs/zlib ) + lzo? ( dev-libs/lzo ) + zstd? ( app-arch/zstd )" +RDEPEND="${DEPEND}" +BDEPEND="" + +src_prepare() { + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DWITH_ZLIB=$(usex zlib) + -DWITH_LZO=$(usex lzo) + -DWITH_ZSTD=$(usex zstd) + ) + + cmake_src_configure +}