From 9e3ec9e01c963b5cff6c309fff5d03bb26515cb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Mon, 21 Oct 2019 22:20:01 +0200 Subject: sys-apps/linux-misc-apps: try to do some fix --- sys-apps/linux-misc-apps/Manifest | 1 + sys-apps/linux-misc-apps/files/freefall.confd | 6 + sys-apps/linux-misc-apps/files/freefall.initd | 44 +++++ sys-apps/linux-misc-apps/files/hpfall.confd | 6 + sys-apps/linux-misc-apps/files/hpfall.initd | 44 +++++ .../linux-misc-apps/linux-misc-apps-4.19-r1.ebuild | 216 +++++++++++++++++++++ 6 files changed, 317 insertions(+) create mode 100644 sys-apps/linux-misc-apps/Manifest create mode 100644 sys-apps/linux-misc-apps/files/freefall.confd create mode 100644 sys-apps/linux-misc-apps/files/freefall.initd create mode 100644 sys-apps/linux-misc-apps/files/hpfall.confd create mode 100644 sys-apps/linux-misc-apps/files/hpfall.initd create mode 100644 sys-apps/linux-misc-apps/linux-misc-apps-4.19-r1.ebuild (limited to 'sys-apps') diff --git a/sys-apps/linux-misc-apps/Manifest b/sys-apps/linux-misc-apps/Manifest new file mode 100644 index 0000000..0c4fb3f --- /dev/null +++ b/sys-apps/linux-misc-apps/Manifest @@ -0,0 +1 @@ +DIST linux-4.19.tar.xz 103117552 BLAKE2B 1dbf16cf410867412d17568fe42bc1e90c034183b654d270b650621ff7664a321950943d0639205bc1ee7ef6210be170c1f2c785a042ed8a4ec5e3a486d890e0 SHA512 ab67cc746b375a8b135e8b23e35e1d6787930d19b3c26b2679787d62951cbdbc3bb66f8ededeb9b890e5008b2459397f9018f1a6772fdef67780b06a4cb9f6f4 diff --git a/sys-apps/linux-misc-apps/files/freefall.confd b/sys-apps/linux-misc-apps/files/freefall.confd new file mode 100644 index 0000000..c082615 --- /dev/null +++ b/sys-apps/linux-misc-apps/files/freefall.confd @@ -0,0 +1,6 @@ +# /etc/conf.d/freefall + +# The name of the disk device that hpfall should protect. +# Usually this is 'sda' or 'hda' the primary master. + +DISK="sda" diff --git a/sys-apps/linux-misc-apps/files/freefall.initd b/sys-apps/linux-misc-apps/files/freefall.initd new file mode 100644 index 0000000..d0c896e --- /dev/null +++ b/sys-apps/linux-misc-apps/files/freefall.initd @@ -0,0 +1,44 @@ +#!/sbin/openrc-run +# Copyright 2012-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +checkconfig() { + if [ -z "$DISK" ] ; then + eerror "You need to setup DISK in /etc/conf.d/freefall first" + return 1 + fi + + if [ ! -b /dev/${DISK} ]; then + eerror "Could not find disk /dev/${DISK}!" + eerror "Adjust the DISK setting in /etc/conf.d/freefall" + return 1 + fi + + if [ ! -e /sys/block/${DISK}/device/unload_heads ] ; then + eerror "No protect entry for ${DISK}!" + eerror "Kernel 2.6.28 and above is required" + return 1 + fi + + if [ ! -c /dev/freefall ]; then + ebegin "Loading hp_accel module" + modprobe hp_accel + eend $? || return 1 + fi +} + +start () { + checkconfig || return 1 + + ebegin "Starting active hard-drive protection daemon" + start-stop-daemon --start --quiet \ + --exec /usr/sbin/freefall /dev/${DISK} + eend $? +} + +stop() { + ebegin "Stopping active hard-drive protection daemon" + start-stop-daemon --stop --quiet \ + --exec /usr/sbin/freefall + eend $? +} diff --git a/sys-apps/linux-misc-apps/files/hpfall.confd b/sys-apps/linux-misc-apps/files/hpfall.confd new file mode 100644 index 0000000..4f3451b --- /dev/null +++ b/sys-apps/linux-misc-apps/files/hpfall.confd @@ -0,0 +1,6 @@ +# /etc/conf.d/hpfall + +# The name of the disk device that hpfall should protect. +# Usually this is 'sda' or 'hda' the primary master. + +DISK="sda" \ No newline at end of file diff --git a/sys-apps/linux-misc-apps/files/hpfall.initd b/sys-apps/linux-misc-apps/files/hpfall.initd new file mode 100644 index 0000000..8b49306 --- /dev/null +++ b/sys-apps/linux-misc-apps/files/hpfall.initd @@ -0,0 +1,44 @@ +#!/sbin/openrc-run +# Copyright 2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +checkconfig() { + if [ -z "$DISK" ] ; then + eerror "You need to setup DISK in /etc/conf.d/hpfall first" + return 1 + fi + + if [ ! -b /dev/${DISK} ]; then + eerror "Could not find disk /dev/${DISK}!" + eerror "Adjust the DISK setting in /etc/conf.d/hpfall" + return 1 + fi + + if [ ! -e /sys/block/${DISK}/device/unload_heads ] ; then + eerror "No protect entry for ${DISK}!" + eerror "Kernel 2.6.28 and above is required" + return 1 + fi + + if [ ! -c /dev/freefall ]; then + ebegin "Loading hp_accel module" + modprobe hp_accel + eend $? || return 1 + fi +} + +start () { + checkconfig || return 1 + + ebegin "Starting active hard-drive protection daemon" + start-stop-daemon --start --quiet \ + --exec /usr/sbin/hpfall /dev/${DISK} + eend $? +} + +stop() { + ebegin "Stopping active hard-drive protection daemon" + start-stop-daemon --stop --quiet \ + --exec /usr/sbin/hpfall + eend $? +} diff --git a/sys-apps/linux-misc-apps/linux-misc-apps-4.19-r1.ebuild b/sys-apps/linux-misc-apps/linux-misc-apps-4.19-r1.ebuild new file mode 100644 index 0000000..7be3cc5 --- /dev/null +++ b/sys-apps/linux-misc-apps/linux-misc-apps-4.19-r1.ebuild @@ -0,0 +1,216 @@ +# Copyright 1999-2018 Gentoo Authors +# 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 usbip" + +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//_/-}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v4.x/testing/${LINUX_PATCH} + https://www.kernel.org/pub/linux/kernel/v4.x/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}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v4.x/${LINUX_PATCH}" +else + LINUX_VER=${PV} +fi + +LINUX_SOURCES=linux-${LINUX_VER}.tar.xz +SRC_URI="${SRC_URI} https://www.kernel.org/pub/linux/kernel/v4.x/${LINUX_SOURCES}" + +# pmtools also provides turbostat +# usbip available in seperate package now +RDEPEND="sys-apps/hwids + >=dev-libs/glib-2.6 + >=sys-kernel/linux-headers-$(get_version_component_range 1-2) + usbip? ( + !net-misc/usbip + tcpd? ( sys-apps/tcp-wrappers ) + virtual/libudev + ) + !sys-power/pmtools" +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=( + samples/watchdog/watchdog-simple.c + tools/accounting/getdelays.c + tools/cgroup/cgroup_event_listener.c + tools/laptop/freefall/freefall.c + tools/testing/selftests/networking/timestamping/timestamping.c + tools/vm/slabinfo.c + usr/gen_init_cpio.c + # Broken: + #tools/lguest/lguest.c # fails to compile + #tools/vm/page-types.c # page-types.c:(.text+0xe2b): undefined reference to `debugfs__mount', not defined anywhere + #tools/net/bpf_jit_disasm.c # /usr/include/x86_64-pc-linux-gnu/bfd.h:35:2: error: #error config.h must be included before this header +) +# tools/vm/page-types.c - broken, header path issue +# 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=( + samples/mei:mei-amt-version + tools/firewire:nosy-dump + tools/iio:iio_event_monitor + tools/iio:iio_generic_buffer + tools/iio:lsiio + tools/laptop/dslm:dslm + tools/power/x86/turbostat:turbostat + tools/power/x86/x86_energy_perf_policy:x86_energy_perf_policy + tools/thermal/tmon:tmon +) +# 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 tools/usb/usbip/ >/dev/null && + sed -i 's/-Werror[^ ]* //g' configure.ac && + 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() { + if use usbip; then + pushd tools/usb/usbip/ || die + econf \ + $(use_enable static-libs static) \ + $(use tcpd || echo --without-tcp-wrappers) \ + --with-usbids-dir=/usr/share/misc + popd + fi +} + +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 + append-cflags -I./tools/lib + 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_binfile=${t#*:} + target=${target_binfile/:*} binfile=${target_binfile/*:} + [ -z "${binfile}" ] && binfile=$target + einfo "Building $dir => $binfile (via emake $target)" + emake -C $dir ARCH=${karch} $target + done + + if use usbip; then + emake -C tools/usb/usbip + fi +} + +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_binfile=${t#*:} + target=${target_binfile/:*} binfile=${target_binfile/*:} + [ -z "${binfile}" ] && binfile=$target + einfo "Installing $dir => $binfile" + dosbin ${dir}/${binfile} + done + + if use usbip; then + pushd tools/usb/usbip/ >/dev/null || die "usbip" + emake DESTDIR="${D}" install + newdoc README README.usbip + newdoc AUTHORS AUTHORS.usbip + popd >/dev/null + dodoc Documentation/usb/usbip_protocol.txt + fi + + mv -f "${D}"/usr/sbin/{,iio_}generic_buffer + + newconfd "${FILESDIR}"/freefall.confd freefall + newinitd "${FILESDIR}"/freefall.initd freefall + prune_libtool_files +} + +pkg_postinst() { + echo + elog "The cpupower utility is maintained separately at sys-power/cpupower" + elog "The lguest utility no longer builds, and has been dropped." + elog "The hpfall tool has been renamed by upstream to freefall; update your config if needed" + if find /etc/runlevels/ -name hpfall ; then + ewarn "You must change hpfall to freefall in your runlevels!" + fi + if use usbip; then + elog "For using USB/IP you need to enable USBIP_VHCI_HCD in the client" + elog "machine's kernel config and USBIP_HOST on the server." + fi +} -- cgit v1.2.3