blob: b8a106eed80b76920349557e621feb134d7aa30d (
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
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit autotools python-single-r1 xdg-utils
DESCRIPTION="A library for manipulating block devices"
HOMEPAGE="https://github.com/storaged-project/libblockdev"
if [[ "${PV}" == *9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/storaged-project/libblockdev.git"
BDEPEND="
sys-devel/autoconf-archive
"
else
MY_PV="${PV}-1"
SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${MY_PV}/${P}.tar.gz"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
LICENSE="LGPL-2+"
SLOT="0"
IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd test +tools vdo"
# Tests require root. In a future release, we may be able to run a smaller
# subset with new run_tests.py arguments.
RESTRICT="!test? ( test ) test"
RDEPEND="
>=dev-libs/glib-2.42.2
dev-libs/libbytesize
>=sys-apps/kmod-19
>=sys-apps/util-linux-2.27
>=sys-block/parted-3.1
cryptsetup? (
escrow? (
>=dev-libs/nss-3.18.0
dev-libs/volume_key
)
>=sys-fs/cryptsetup-1.6.7:=
)
device-mapper? ( sys-fs/lvm2 )
dmraid? (
sys-fs/dmraid
sys-fs/lvm2
)
lvm? (
sys-fs/lvm2
virtual/udev
)
vdo? ( dev-libs/libyaml )
${PYTHON_DEPS}
"
DEPEND="
${RDEPEND}
"
# TODO: relax libbytesize condition once it has gained py3.11 support
BDEPEND+="
dev-util/gtk-doc-am
gtk-doc? ( dev-util/gtk-doc )
introspection? ( >=dev-libs/gobject-introspection-1.3.0 )
test? (
$(python_gen_cond_dep '
dev-libs/libbytesize[python,${PYTHON_USEDEP}]
' python3_{8..10} )
sys-block/targetcli-fb
)
"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
escrow? ( cryptsetup )"
pkg_setup() {
python-single-r1_pkg_setup
}
src_prepare() {
xdg_environment_reset #623992
default
# https://bugs.gentoo.org/744289
find -type f \( -name "Makefile.am" -o -name "configure.ac" \) -print0 \
| xargs --null sed "s@ -Werror@@" -i || die
eautoreconf
}
src_configure() {
local myeconfargs=(
--with-btrfs
--with-fs
--with-part
--with-python3
--without-mpath
--without-nvdimm
--without-python2
$(use_enable introspection)
$(use_enable test tests)
$(use_with bcache)
$(use_with cryptsetup crypto)
$(use_with device-mapper dm)
$(use_with dmraid)
$(use_with escrow)
$(use_with gtk-doc)
$(use_with kbd)
$(use_with lvm lvm)
$(use_with lvm lvm-dbus)
$(use_with tools)
$(use_with vdo)
)
econf "${myeconfargs[@]}"
}
src_test() {
# See http://storaged.org/libblockdev/ch03.html
# The 'check' target just does Pylint.
# ... but it needs root.
emake test
}
src_install() {
default
find "${ED}" -type f -name "*.la" -delete || die
# This is installed even with USE=-lvm, but libbd_lvm are omitted so it
# doesn't work at all.
if ! use lvm ; then
rm -f "${ED}"/usr/bin/lvm-cache-stats || die
fi
python_optimize #718576
}
|