blob: 205c4a30cf1b1b36c2f7e77850ea5d87eda06fb5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DISTUTILS_OPTIONAL=1
PYTHON_COMPAT=( python3_{7,8,9} )
inherit bash-completion-r1 distutils-r1 flag-o-matic pam toolchain-funcs udev
MY_PN="zfs"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Userland utilities for ZFS Linux kernel module"
HOMEPAGE="https://zfsonlinux.org/"
SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz"
KEYWORDS="~amd64"
S="${WORKDIR}/${MY_P}"
LICENSE="BSD-2 CDDL MIT"
SLOT="0"
IUSE="debug pam python test-suite static-libs"
DEPEND="
net-libs/libtirpc[static-libs?]
sys-apps/util-linux[static-libs?]
sys-libs/zlib[static-libs(+)?]
virtual/awk
virtual/libudev[static-libs(-)?]
dev-libs/openssl:0=[static-libs?]
pam? ( sys-libs/pam )
python? (
virtual/python-cffi[${PYTHON_USEDEP}]
)
"
BDEPEND="virtual/awk
virtual/pkgconfig
python? (
dev-python/setuptools[${PYTHON_USEDEP}]
)
"
RDEPEND="${DEPEND}
!prefix? ( virtual/udev )
sys-fs/udev-init-scripts
test-suite? (
sys-apps/kmod[tools]
sys-apps/util-linux
sys-devel/bc
sys-block/parted
sys-fs/lsscsi
sys-fs/mdadm
sys-process/procps
)
"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="test"
PATCHES=( "${FILESDIR}/bash-completion-sudo.patch" )
src_prepare() {
default
if use python; then
pushd contrib/pyzfs >/dev/null || die
distutils-r1_src_prepare
popd >/dev/null || die
fi
# prevent errors showing up on zfs-mount stop, #647688
# openrc will unmount all filesystems anyway.
sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die
}
src_configure() {
local myconf=(
--bindir="${EPREFIX}/bin"
--enable-shared
--disable-systemd
--enable-sysvinit
--localstatedir="${EPREFIX}/var"
--sbindir="${EPREFIX}/sbin"
--with-config=user
--with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-udevdir="$(get_udevdir)"
--with-pamconfigsdir="${EPREFIX}/unwanted_files"
--with-pammoduledir="$(getpam_mod_dir)"
--with-vendor=gentoo
$(use_enable debug)
$(use_enable pam)
$(use_enable python pyzfs)
)
econf "${myconf[@]}"
}
src_compile() {
default
if use python; then
pushd contrib/pyzfs >/dev/null || die
distutils-r1_src_compile
popd >/dev/null || die
fi
}
src_install() {
default
gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool
use pam && { rm -rv "${ED}/unwanted_files" || die ; }
use test-suite || { rm -r "${ED}/usr/share/zfs" || die ; }
if ! use static-libs; then
find "${ED}/" -name '*.la' -delete || die
fi
dobashcomp contrib/bash_completion.d/zfs
bashcomp_alias zfs zpool
# strip executable bit from conf.d file
fperms 0644 /etc/conf.d/zfs
if use python; then
pushd contrib/pyzfs >/dev/null || die
distutils-r1_src_install
popd >/dev/null || die
fi
# enforce best available python implementation
python_setup
python_fix_shebang "${ED}/bin"
}
|