blob: 8e995d72178a2fe93611c2a5860ec24c923de88b (
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
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools bash-completion-r1 flag-o-matic linux-info tmpfiles udev
DESCRIPTION="mirror/replicate block-devices across a network-connection"
HOMEPAGE="https://www.linbit.com/drbd"
SRC_URI="https://pkg.linbit.com/downloads/drbd/utils/${P}.tar.gz"
S="${WORKDIR}/${P/_/}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="pacemaker +udev xen"
DEPEND="
sys-apps/keyutils
pacemaker? ( sys-cluster/pacemaker )
udev? ( virtual/udev )
"
RDEPEND="${DEPEND}"
BDEPEND="app-alternatives/lex"
PATCHES=(
"${FILESDIR}"/${PN}-9.23.1-respect-flags.patch
)
pkg_setup() {
# verify that CONFIG_BLK_DEV_DRBD is enabled in the kernel or
# warn otherwise
linux-info_pkg_setup
elog "Checking for suitable kernel configuration options..."
if linux_config_exists; then
if ! linux_chkconfig_present BLK_DEV_DRBD; then
ewarn "CONFIG_BLK_DEV_DRBD: is not set when it should be."
elog "Please check to make sure these options are set correctly."
fi
else
ewarn "Could not check if CONFIG_BLK_DEV_DRBD is enabled in your kernel."
elog "Please check to make sure these options are set correctly."
fi
}
src_prepare() {
# Respect LDFLAGS, bug #453442
sed -e "s/\$(CC) -o/\$(CC) \$(LDFLAGS) -o/" \
-e "/\$(DESTDIR)\$(localstatedir)\/lock/d" \
-i user/*/Makefile.in || die
# Respect multilib, bug #698304
sed -i -e "s:/lib/:/$(get_libdir)/:g" \
Makefile.in scripts/{Makefile.in,global_common.conf,drbd.conf.example} || die
sed -e "s:@prefix@/lib:@prefix@/$(get_libdir):" \
-e "s:(DESTDIR)/lib:(DESTDIR)/$(get_libdir):" \
-i user/*/Makefile.in || die
sed -i -e "s/lib/$(get_libdir)/" scripts/drbd.service || die
# Correct install paths (really correct this time)
sed -i -e "s:\$(sysconfdir)/bash_completion.d:$(get_bashcompdir):" \
scripts/Makefile.in || die
# Don't participate in user survey, bug #360483
sed -i -e '/usage-count/ s/yes/no/' scripts/global_common.conf || die
sed -i -e "s:\$(sysconfdir)/udev:$(get_udevdir):" scripts/Makefile.in || die
default
eautoreconf
}
src_configure() {
# -Werror=lto-type-mismatch, bug #863728
# https://github.com/LINBIT/drbd-utils/issues/40
filter-lto
local myeconfargs=(
--localstatedir="${EPREFIX}"/var
# don't autodetect systemd/sysv; install systemd and use our own openrc
--with-initscripttype=systemd
# only used for systemdunitdir and for udevdir; the latter breaks
# merged-usr interop
PKG_CONFIG=/bin/false
--with-systemdunitdir="${EPREFIX}"/usr/lib/systemd/system
--with-bashcompletion
--with-distro=gentoo
--with-prebuiltman
--without-rgmanager
$(use_with pacemaker)
$(use_with udev)
$(use_with xen)
)
econf "${myeconfargs[@]}"
}
src_compile() {
# Only compile the tools
emake CXXFLAGS="${CXXFLAGS}" OPTFLAGS="${CFLAGS}" tools doc
}
src_install() {
# Only install the tools
emake DESTDIR="${D}" install-tools install-doc
# Install our own init script
newinitd "${FILESDIR}"/${PN}-8.0.rc ${PN/-utils/}
dodoc scripts/drbd.conf.example
keepdir /var/lib/drbd
rm -r "${ED}"/var/run || die
# bug #698304
dodir /lib/drbd
local i
for i in drbdadm-83 drbdadm-84 drbdsetup-83 drbdsetup-84; do
dosym -r /$(get_libdir)/drbd/"${i}" /lib/drbd/"${i}"
done
einstalldocs
}
pkg_postinst() {
tmpfiles_process drbd.conf
einfo
einfo "Please copy and gunzip the configuration file:"
einfo "from ${EROOT}/usr/share/doc/${PF}/${PN/-utils/}.conf.example.bz2 to ${EROOT}/etc/${PN/-utils/}.conf"
einfo "and edit it to your needs. Helpful commands:"
einfo "man 5 drbd.conf"
einfo "man 8 drbdsetup"
einfo "man 8 drbdadm"
einfo "man 8 drbddisk"
einfo "man 8 drbdmeta"
einfo
}
|