blob: 17f7738c517ded9126ee1bc08d45f63df0ae2c62 (
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/util-linux-2.25.2.ebuild,v 1.1 2014/10/24 16:27:07 vapier Exp $
EAPI="4"
PYTHON_COMPAT=( python2_7 python3_{2,3,4} )
inherit eutils toolchain-funcs libtool flag-o-matic bash-completion-r1 \
python-single-r1 multilib-minimal
MY_PV=${PV/_/-}
MY_P=${PN}-${MY_PV}
if [[ ${PV} == 9999 ]] ; then
inherit git-2 autotools
EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
else
KEYWORDS="amd64 arm ~mips ppc x86"
SRC_URI="mirror://kernel/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz"
fi
DESCRIPTION="Various useful Linux utilities"
HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux/"
LICENSE="GPL-2 LGPL-2.1 BSD-4 MIT public-domain"
SLOT="0"
IUSE="caps +cramfs fdformat ncurses nls pam python selinux slang static-libs +suid test tty-helpers udev unicode"
RDEPEND="!sys-process/schedutils
!sys-apps/setarch
!<sys-apps/sysvinit-2.88-r7
!sys-block/eject
!<sys-libs/e2fsprogs-libs-1.41.8
!<sys-fs/e2fsprogs-1.41.8
!<app-shells/bash-completion-1.3-r2
caps? ( sys-libs/libcap-ng )
cramfs? ( sys-libs/zlib )
ncurses? ( >=sys-libs/ncurses-5.2-r2 )
pam? ( sys-libs/pam )
python? ( ${PYTHON_DEPS} )
selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] )
slang? ( sys-libs/slang )
udev? ( virtual/udev )
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20140406-r2
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32]
)"
DEPEND="${RDEPEND}
virtual/pkgconfig
nls? ( sys-devel/gettext )
test? ( sys-devel/bc )
virtual/os-headers"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
S=${WORKDIR}/${MY_P}
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_prepare() {
epatch "${FILESDIR}"/${P}-runuser-bash-completion.patch #522288
epatch "${FILESDIR}"/${PN}-2.25-remove__SWORD_TYPE.patch
if [[ ${PV} == 9999 ]] ; then
po/update-potfiles
eautoreconf
fi
elibtoolize
}
lfs_fallocate_test() {
# Make sure we can use fallocate with LFS #300307
cat <<-EOF > "${T}"/fallocate.${ABI}.c
#define _GNU_SOURCE
#include <fcntl.h>
main() { return fallocate(0, 0, 0, 0); }
EOF
append-lfs-flags
$(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} "${T}"/fallocate.${ABI}.c -o /dev/null >/dev/null 2>&1 \
|| export ac_cv_func_fallocate=no
rm -f "${T}"/fallocate.${ABI}.c
}
multilib_src_configure() {
lfs_fallocate_test
export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) #485486
# We manually set --libdir to the default since on prefix, econf will set it to
# a value which the configure script does not recognize. This makes it set the
# usrlib_execdir to a bad value. bug #518898#c2, fixed upstream for >2.25
ECONF_SOURCE=${S} \
econf \
--enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" \
--libdir='${prefix}/'"$(get_libdir)" \
$(multilib_native_use_enable nls) \
--enable-agetty \
--with-bashcompletiondir="$(get_bashcompdir)" \
--enable-bash-completion \
$(multilib_native_use_enable caps setpriv) \
--disable-chfn-chsh \
$(multilib_native_use_enable cramfs) \
$(multilib_native_use_enable fdformat) \
--with-ncurses=$(multilib_native_usex ncurses $(usex unicode auto yes) no) \
--disable-kill \
--disable-login \
$(multilib_native_use_enable tty-helpers mesg) \
--disable-nologin \
--enable-partx \
$(multilib_native_use_with python) \
--enable-raw \
--enable-rename \
--disable-reset \
--enable-schedutils \
--disable-su \
$(multilib_native_use_enable tty-helpers wall) \
$(multilib_native_use_enable tty-helpers write) \
$(multilib_native_use_enable suid makeinstall-chown) \
$(multilib_native_use_enable suid makeinstall-setuid) \
$(use_with selinux) \
$(multilib_native_use_with slang) \
$(use_enable static-libs static) \
$(multilib_native_use_with udev) \
$(tc-has-tls || echo --disable-tls)
}
multilib_src_compile() {
if multilib_is_native_abi; then
default
else
# build libraries only
emake -f Makefile -f - mylibs \
<<< 'mylibs: $(usrlib_exec_LTLIBRARIES) $(pkgconfig_DATA)'
fi
}
multilib_src_test() {
multilib_is_native_abi && emake check
}
multilib_src_install() {
if multilib_is_native_abi; then
default
else
emake DESTDIR="${D}" install-usrlib_execLTLIBRARIES \
install-pkgconfigDATA install-uuidincHEADERS \
install-nodist_blkidincHEADERS install-nodist_mountincHEADERS \
install-nodist_smartcolsincHEADERS
fi
if multilib_is_native_abi; then
# need the libs in /
gen_usr_ldscript -a blkid mount smartcols uuid
use python && python_optimize
fi
}
multilib_src_install_all() {
dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*}
# e2fsprogs-libs didnt install .la files, and .pc work fine
prune_libtool_files
}
pkg_postinst() {
if ! use tty-helpers; then
elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers."
fi
if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "The agetty util now clears the terminal by default. You"
elog "might want to add --noclear to your /etc/inittab lines."
fi
}
|