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
176
177
178
179
180
181
182
183
184
|
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit versionator eutils toolchain-funcs linux-info autotools flag-o-matic
DESCRIPTION="Misc tools bundled with kernel sources"
HOMEPAGE="https://kernel.org/"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="static-libs tcpd"
MY_PV="${PV/_/-}"
MY_PV="${MY_PV/-pre/-git}"
LINUX_V=$(get_version_component_range 1-2)
if [ ${PV/_rc} != ${PV} ]; then
LINUX_VER=$(get_version_component_range 1-2).$(($(get_version_component_range 3)-1))
PATCH_VERSION=$(get_version_component_range 1-3)
LINUX_PATCH=patch-${PV//_/-}.bz2
SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH}
mirror://kernel/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}"
elif [ $(get_version_component_count) == 4 ]; then
# stable-release series
LINUX_VER=$(get_version_component_range 1-3)
LINUX_PATCH=patch-${PV}.bz2
SRC_URI="mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
else
LINUX_VER=${PV}
fi
LINUX_SOURCES=linux-${LINUX_VER}.tar.bz2
SRC_URI="${SRC_URI} mirror://kernel/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
# pmtools also provides turbostat
# sysfsutils and glib for usbip - remove sysfsutils in 3.7 or 3.8
RDEPEND="sys-apps/hwids
>=sys-fs/sysfsutils-2
>=dev-libs/glib-2.6
tcpd? ( sys-apps/tcp-wrappers )
!sys-power/pmtools
!net-misc/usbip"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S="${WORKDIR}/linux-${LINUX_VER}"
# All of these are integrated with the kernel build system,
# No make install, and ideally build with with the root Makefile
TARGETS_SIMPLE=(
Documentation/accounting/getdelays.c
Documentation/cgroups/cgroup_event_listener.c
Documentation/laptops/dslm.c
Documentation/laptops/hpfall.c
Documentation/networking/timestamping/timestamping.c
Documentation/watchdog/src/watchdog-simple.c
tools/lguest/lguest.c
tools/vm/page-types.c
tools/vm/slabinfo.c
usr/gen_init_cpio.c
)
# tools/hv/hv_kvp_daemon.c - broken in 3.7 by missing linux/hyperv.h userspace
# Documentation/networking/ifenslave.c - obsolete
# Documentation/ptp/testptp.c - pending linux-headers-3.0
# These have a broken make install, no DESTDIR
TARGET_MAKE_SIMPLE=(
tools/firewire:nosy-dump
tools/power/x86/turbostat:turbostat
tools/power/x86/x86_energy_perf_policy:x86_energy_perf_policy
Documentation/misc-devices/mei:mei-amt-version
)
# tools/perf - covered by dev-utils/perf
# tools/usb - testcases only
# tools/virtio - testcaes only
#for _pattern in {Documentation,scripts,tools,usr,include,lib,"arch/*/include",Makefile,Kbuild,Kconfig}; do
src_unpack() {
unpack ${LINUX_SOURCES}
MY_A=
for _AFILE in ${A}; do
[[ ${_AFILE} == ${LINUX_SOURCES} ]] && continue
[[ ${_AFILE} == ${LINUX_PATCH} ]] && continue
MY_A="${MY_A} ${_AFILE}"
done
[[ -n ${MY_A} ]] && unpack ${MY_A}
}
src_prepare() {
if [[ -n ${LINUX_PATCH} ]]; then
epatch "${DISTDIR}"/${LINUX_PATCH}
fi
pushd drivers/staging/usbip/userspace >/dev/null &&
eautoreconf -i -f -v &&
popd >/dev/null || die "usbip"
sed -i \
-e '/^nosy-dump.*LDFLAGS/d' \
-e '/^nosy-dump.*CFLAGS/d' \
-e '/^nosy-dump.*CPPFLAGS/s,CPPFLAGS =,CPPFLAGS +=,g' \
"${S}"/tools/firewire/Makefile
}
kernel_asm_arch() {
a="${1:${ARCH}}"
case ${a} in
# Merged arches
x86|amd64) echo x86 ;;
ppc*) echo powerpc ;;
# Non-merged
alpha|arm|ia64|m68k|mips|sh|sparc*) echo ${1} ;;
*) die "TODO: Update the code for your asm-ARCH symlink" ;;
esac
}
src_configure() {
cd drivers/staging/usbip/userspace && \
econf \
$(use_enable static-libs static) \
$(use tcpd || echo --without-tcp-wrappers) \
--with-usbids-dir=/usr/share/misc
}
src_compile() {
local karch=$(kernel_asm_arch "${ARCH}")
# This is the minimal amount needed to start building host binaries.
#emake allmodconfig ARCH=${karch}
#emake prepare modules_prepare ARCH=${karch}
#touch Module.symvers
# Now we can start building
for s in ${TARGETS_SIMPLE[@]} ; do
dir=$(dirname $s) src=$(basename $s) bin=${src%.c}
einfo "Building $s => $bin"
emake -f /dev/null M=${dir} ARCH=${karch} ${s%.c}
done
for t in ${TARGET_MAKE_SIMPLE[@]} ; do
dir=${t/:*} target=${t/*:}
einfo "Building $dir => $target"
emake -C $dir ARCH=${karch} $target
done
emake -C drivers/staging/usbip/userspace
}
src_install() {
into /usr
for s in ${TARGETS_SIMPLE[@]} ; do
dir=$(dirname $s) src=$(basename $s) bin=${src%.c}
einfo "Installing $s => $bin"
dosbin ${dir}/${bin}
done
for t in ${TARGET_MAKE_SIMPLE[@]} ; do
dir=${t/:*} target=${t/*:}
einfo "Installing $dir => $target"
dosbin ${dir}/${target}
done
pushd drivers/staging/usbip/userspace >/dev/null \
|| die "Missing usbip/userspace"
emake DESTDIR="${D}" install
newdoc README README.usbip
newdoc AUTHORS AUTHORS.usbip
dodoc ../usbip_protocol.txt
popd >/dev/null
newconfd "${FILESDIR}"/hpfall.confd hpfall
newinitd "${FILESDIR}"/hpfall.initd hpfall
prune_libtool_files
}
pkg_postinst() {
echo
elog "The cpupower utility is maintained separately at sys-power/cpupower"
}
|