summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-fs/bcachefs-tools/bcachefs-tools-24_p20230603.ebuild')
-rw-r--r--sys-fs/bcachefs-tools/bcachefs-tools-24_p20230603.ebuild266
1 files changed, 266 insertions, 0 deletions
diff --git a/sys-fs/bcachefs-tools/bcachefs-tools-24_p20230603.ebuild b/sys-fs/bcachefs-tools/bcachefs-tools-24_p20230603.ebuild
new file mode 100644
index 000000000000..39359e2c3f12
--- /dev/null
+++ b/sys-fs/bcachefs-tools/bcachefs-tools-24_p20230603.ebuild
@@ -0,0 +1,266 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick-0.7.20
+ android_system_properties-0.1.5
+ anyhow-1.0.68
+ anyhow-1.0.69
+ atty-0.2.14
+ autocfg-1.1.0
+ bitfield-0.14.0
+ bitflags-1.3.2
+ bumpalo-3.12.0
+ byteorder-1.4.3
+ cc-1.0.79
+ cexpr-0.6.0
+ cfg-if-1.0.0
+ chrono-0.4.23
+ clang-sys-1.6.0
+ clap_derive-4.1.0
+ clap_lex-0.3.1
+ clap-4.1.4
+ codespan-reporting-0.11.1
+ colored-2.0.0
+ core-foundation-sys-0.8.3
+ cxx-1.0.89
+ cxx-1.0.91
+ cxx-build-1.0.89
+ cxx-build-1.0.91
+ cxxbridge-flags-1.0.89
+ cxxbridge-flags-1.0.91
+ cxxbridge-macro-1.0.89
+ cxxbridge-macro-1.0.91
+ either-1.8.1
+ errno-0.2.8
+ errno-dragonfly-0.1.2
+ fastrand-1.8.0
+ fastrand-1.9.0
+ filedescriptor-0.8.2
+ gag-1.0.0
+ getset-0.1.2
+ glob-0.3.1
+ heck-0.4.1
+ hermit-abi-0.1.19
+ hermit-abi-0.2.6
+ iana-time-zone-0.1.53
+ iana-time-zone-haiku-0.1.1
+ instant-0.1.12
+ io-lifetimes-1.0.4
+ io-lifetimes-1.0.5
+ is-terminal-0.4.2
+ itertools-0.9.0
+ js-sys-0.3.61
+ lazy_static-1.4.0
+ lazycell-1.3.0
+ libc-0.2.139
+ libudev-sys-0.1.4
+ link-cplusplus-1.0.8
+ linux-raw-sys-0.1.4
+ log-0.4.17
+ memchr-2.5.0
+ memoffset-0.8.0
+ minimal-lexical-0.2.1
+ nom-7.1.3
+ num-integer-0.1.45
+ num-traits-0.2.15
+ once_cell-1.17.0
+ once_cell-1.17.1
+ os_str_bytes-6.4.1
+ parse-display-0.1.2
+ parse-display-derive-0.1.2
+ paste-1.0.11
+ peeking_take_while-0.1.2
+ pkg-config-0.3.26
+ proc-macro-error-1.0.4
+ proc-macro-error-attr-1.0.4
+ proc-macro2-1.0.50
+ proc-macro2-1.0.51
+ quote-1.0.23
+ redox_syscall-0.2.16
+ regex-1.7.1
+ regex-syntax-0.6.28
+ remove_dir_all-0.5.3
+ rpassword-4.0.5
+ rustc-hash-1.1.0
+ rustix-0.36.7
+ rustix-0.36.8
+ scratch-1.0.3
+ shlex-1.1.0
+ strsim-0.10.0
+ syn-1.0.107
+ syn-1.0.109
+ tempfile-3.3.0
+ tempfile-3.4.0
+ termcolor-1.2.0
+ terminal_size-0.2.3
+ thiserror-1.0.38
+ thiserror-impl-1.0.38
+ time-0.1.45
+ udev-0.7.0
+ unicode-ident-1.0.6
+ unicode-width-0.1.10
+ uuid-1.3.0
+ version_check-0.9.4
+ wasi-0.10.0+wasi-snapshot-preview1
+ wasm-bindgen-0.2.84
+ wasm-bindgen-backend-0.2.84
+ wasm-bindgen-macro-0.2.84
+ wasm-bindgen-macro-support-0.2.84
+ wasm-bindgen-shared-0.2.84
+ winapi-0.3.9
+ winapi-i686-pc-windows-gnu-0.4.0
+ winapi-util-0.1.5
+ winapi-x86_64-pc-windows-gnu-0.4.0
+ windows_aarch64_gnullvm-0.42.1
+ windows_aarch64_msvc-0.42.1
+ windows_i686_gnu-0.42.1
+ windows_i686_msvc-0.42.1
+ windows_x86_64_gnu-0.42.1
+ windows_x86_64_gnullvm-0.42.1
+ windows_x86_64_msvc-0.42.1
+ windows-sys-0.42.0
+ windows-sys-0.45.0
+ windows-targets-0.42.1
+"
+
+# Upstream have a fork of bindgen and use cgit
+declare -A GIT_CRATES=(
+ [bindgen]="https://gitlab.com/Matt.Jolly/rust-bindgen-bcachefs;f773267b090bf16b9e8375fcbdcd8ba5e88806a8;rust-bindgen-bcachefs-%commit%/bindgen"
+)
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cargo flag-o-matic multiprocessing python-any-r1 toolchain-funcs unpacker
+
+DESCRIPTION="Tools for bcachefs"
+HOMEPAGE="https://bcachefs.org/"
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://evilpiepirate.org/git/bcachefs-tools.git"
+else
+ MY_COMMIT=1f78fed4693a5361f56508daac59bebd5b556379
+ SRC_URI="https://github.com/koverstreet/bcachefs-tools/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz
+ $(cargo_crate_uris ${CRATES})"
+ S="${WORKDIR}/${PN}-${MY_COMMIT}"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="Apache-2.0 BSD GPL-2 MIT"
+SLOT="0"
+IUSE="fuse test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ app-arch/lz4
+ dev-libs/libaio
+ dev-libs/libsodium
+ dev-libs/userspace-rcu
+ sys-apps/keyutils
+ sys-apps/util-linux
+ sys-libs/zlib
+ virtual/udev
+ fuse? ( >=sys-fs/fuse-3.7.0 )
+"
+
+RDEPEND="${DEPEND}"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/docutils[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+ ')
+ $(unpacker_src_uri_depends)
+ sys-devel/clang
+ virtual/rust
+"
+
+python_check_deps() {
+ if use test; then
+ python_has_version \
+ "dev-python/pytest[${PYTHON_USEDEP}]" \
+ "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
+ fi
+ python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+
+}
+
+src_unpack() {
+ if [[ ${PV} == "9999" ]]; then
+ git-r3_src_unpack
+ S="${S}/rust-src" cargo_live_src_unpack
+ else
+ default
+ cargo_src_unpack
+ fi
+}
+
+src_prepare() {
+ default
+ tc-export CC
+ sed \
+ -e '/^CFLAGS/s:-O2::' \
+ -e '/^CFLAGS/s:-g::' \
+ -i Makefile || die
+ # Patch our cargo-ebuild patch definition to pretend that our GIT_CRATE is upstream's URI.
+ if ! [[ ${PV} == "9999" ]]; then
+ sed -e 's https://gitlab.com/Matt.Jolly/rust-bindgen-bcachefs https://evilpiepirate.org/git/rust-bindgen.git ' \
+ -i "${WORKDIR}/cargo_home/config" || die
+ fi
+ append-lfs-flags
+}
+
+src_compile() {
+ use fuse && export BCACHEFS_FUSE=1
+ export BUILD_VERBOSE=1
+ export VERSION=${PV}
+
+ default
+
+ use test && emake tests
+}
+
+src_test() {
+ if ! use fuse; then
+ EPYTEST_IGNORE=( tests/test_fuse.py )
+ fi
+ EPYTEST_DESELECT=(
+ # Valgrind
+ 'tests/test_fixture.py::test_read_after_free'
+ 'tests/test_fixture.py::test_undefined'
+ 'tests/test_fixture.py::test_write_after_free'
+ 'tests/test_fixture.py::test_undefined_branch'
+ 'tests/test_fixture.py::test_leak'
+ 'tests/test_fixture.py::test_check'
+ # Fails in portage because of usersandbox; ensure that these pass before bumping!
+ 'tests/test_basic.py::test_format'
+ 'tests/test_basic.py::test_fsck'
+ 'tests/test_basic.py::test_list'
+ 'tests/test_basic.py::test_list_inodes'
+ 'tests/test_basic.py::test_list_dirent'
+ )
+ epytest -v -n "$(makeopts_jobs)"
+}
+
+src_install() {
+ exeinto /usr/bin
+ local file
+ for file in bcachefs fsck.bcachefs mkfs.bcachefs mount.bcachefs; do
+ doexe $file
+ done
+ doman bcachefs.8
+}
+
+pkg_postinst() {
+ if use fuse; then
+ ewarn "FUSE support is experimental."
+ ewarn "Please only use it for development purposes at the risk of losing your data."
+ ewarn "You have been warned."
+ fi
+}