200 lines
3.8 KiB
Bash
200 lines
3.8 KiB
Bash
# 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
|
|
}
|