# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 CRATES=" aho-corasick-0.7.8 ansi_term-0.10.2 atty-0.2.6 autocfg-0.1.6 backtrace-0.3.3 backtrace-sys-0.1.16 bindgen-0.53.1 bitflags-1.2.1 bit-set-0.5.0 bit-vec-0.5.0 byteorder-1.2.7 cc-1.0.50 cexpr-0.3.6 cfg-if-0.1.2 chrono-0.4.5 clang-sys-0.28.1 clap-2.29.0 cloudabi-0.0.3 crc-1.4.0 dbghelp-sys-0.2.0 dbus-0.8.1 devicemapper-0.28.0 dtoa-0.4.1 either-1.5.3 env_logger-0.5.10 env_logger-0.7.1 errno-0.2.3 error-chain-0.12.1 fnv-1.0.6 fuchsia-cprng-0.1.1 fuchsia-zircon-0.3.3 fuchsia-zircon-sys-0.3.3 glob-0.3.0 humantime-1.3.0 itertools-0.8.0 itoa-0.3.1 kernel32-sys-0.2.2 lazycell-1.2.1 lazy_static-0.2.8 lazy_static-1.4.0 libc-0.2.68 libcryptsetup-rs-0.4.0 libcryptsetup-rs-sys-0.1.2 libdbus-sys-0.2.1 libloading-0.5.2 libmount-0.1.13 libudev-0.2.0 libudev-sys-0.1.3 log-0.4.8 loopdev-0.2.0 matches-0.1.8 memchr-2.3.3 nix-0.14.0 nom-4.2.3 num-integer-0.1.39 num-traits-0.1.37 num-traits-0.2.5 peeking_take_while-0.1.2 pkg-config-0.3.9 proc-macro2-1.0.8 proptest-0.9.6 quick-error-1.2.2 quote-0.3.15 quote-1.0.3 rand-0.4.3 rand-0.6.5 rand_chacha-0.1.1 rand_core-0.3.1 rand_core-0.4.2 rand_hc-0.1.0 rand_isaac-0.1.1 rand_jitter-0.1.4 rand_os-0.1.3 rand_pcg-0.1.2 rand_xorshift-0.1.1 rdrand-0.4.0 redox_syscall-0.1.18 redox_termios-0.1.1 regex-1.3.4 regex-syntax-0.6.14 remove_dir_all-0.5.1 rustc-demangle-0.1.5 rustc-hash-1.1.0 rusty-fork-0.2.1 semver-0.9.0 semver-parser-0.7.0 serde-1.0.82 serde_derive-1.0.8 serde_derive_internals-0.15.1 serde_json-1.0.2 shlex-0.1.1 strsim-0.6.0 syn-0.11.11 synom-0.11.3 tempfile-3.0.2 termcolor-0.3.6 termcolor-1.1.0 termion-1.5.1 textwrap-0.9.0 thread_local-1.0.1 time-0.1.37 timerfd-1.0.0 unicode-width-0.1.4 unicode-xid-0.0.4 unicode-xid-0.2.0 uuid-0.7.4 vec_map-0.8.0 version_check-0.1.5 void-1.0.2 wait-timeout-0.1.5 which-3.1.0 winapi-0.2.8 winapi-0.3.3 winapi-build-0.1.1 winapi-i686-pc-windows-gnu-0.3.2 winapi-util-0.1.3 winapi-x86_64-pc-windows-gnu-0.3.2 wincolor-0.1.6 " inherit cargo systemd DESCRIPTION="Linux local storage management tool that aims to enable easy use of advanced storage features such as thin provisioning, snapshots, and pool-based management and monitoring." HOMEPAGE="https://stratis-storage.github.io/" SRC_URI="https://github.com/stratis-storage/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz $(cargo_crate_uris ${CRATES})" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="elibc_musl initramfs" BDEPEND=" >=virtual/rust-1.43.0 sys-devel/clang " DEPEND=" sys-apps/dbus virtual/udev dev-libs/libpcre >=sys-fs/cryptsetup-2.3 >=sys-apps/util-linux-2.32 " RDEPEND=" ${DEPEND} sys-fs/xfsprogs sys-block/thin-provisioning-tools " QA_FLAGS_IGNORED="/sbin/stratisd /usr/libexec/stratisd" PATCHES=( # Until feature will be released. https://github.com/stratis-storage/project/issues/161 ${FILESDIR}/0001-disable-xfs-uuid-change-after-snapshot-create.patch # Until issue will be fixed. https://github.com/stratis-storage/stratisd/issues/1780 ${FILESDIR}/0002-duplicate_check-disable.patch ) src_prepare() { default # Fix musl build. https://github.com/stratis-storage/devicemapper-rs/issues/560 cd ${WORKDIR}/cargo_home/gentoo/devicemapper-0.28.0 eapply ${FILESDIR}/0001-Fix-issue-of-devicemapper-rs-compatibility-with-musl.patch } src_compile(){ if use initramfs; then cargo_src_compile --no-default-features mv "${S}"/target/release/stratisd "${S}"/target/release/stratisd-init || die fi cargo_src_compile --all-features } src_install() { if use initramfs; then exeinto /sbin doexe "${S}"/target/release/stratisd-init fi exeinto /usr/libexec doexe "${S}"/target/release/stratisd einstalldocs dodoc -r docs/. newinitd "${FILESDIR}/init.d.stratisd-r2" stratisd systemd_dounit "${S}/stratisd.service" insinto /etc/dbus-1/system.d doins ${S}/stratisd.conf }