| # |
| # Copyright 2024 Google LLC |
| # |
| # This program is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU General Public License |
| # version 2 as published by the Free Software Foundation. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| |
| EAPI=7 |
| |
| inherit flag-o-matic linux-info systemd tmpfiles toolchain-funcs udev |
| |
| DESCRIPTION="Device mapper target autoconfig" |
| HOMEPAGE="http://christophe.varoqui.free.fr/" |
| SRC_URI="https://github.com/opensvc/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="systemd test" |
| RESTRICT="!test? ( test )" |
| |
| RDEPEND=" |
| dev-libs/json-c:= |
| dev-libs/libaio |
| dev-libs/userspace-rcu:= |
| >=sys-fs/lvm2-2.02.45 |
| sys-libs/readline:= |
| >=virtual/libudev-232-r3 |
| systemd? ( sys-apps/systemd ) |
| " |
| DEPEND=" |
| ${RDEPEND} |
| test? ( dev-util/cmocka ) |
| " |
| BDEPEND="virtual/pkgconfig" |
| |
| CONFIG_CHECK="~DM_MULTIPATH" |
| |
| PATCHES=( |
| "${FILESDIR}"/${PN}-0.9.7-remove-Werror.patch |
| "${FILESDIR}"/${P}-null-pointer-dereference-in-uev_update_path.patch |
| "${FILESDIR}"/${PN}-0.9.7-after-etc-overlay-mount.patch |
| ) |
| |
| myemake() { |
| local myemakeargs=( |
| prefix="${EPREFIX}" |
| usr_prefix="${EPREFIX}/usr" |
| LIB="$(get_libdir)" |
| RUN=run |
| plugindir="${EPREFIX}/$(get_libdir)/multipath" |
| unitdir="$(systemd_get_systemunitdir)" |
| libudevdir="${EPREFIX}$(get_udevdir)" |
| GENTOO_CFLAGS="${CFLAGS}" |
| GENTOO_CPPFLAGS="${CPPFLAGS}" |
| FORTIFY_OPT= |
| OPTFLAGS= |
| FAKEVAR=1 |
| V=1 |
| ) |
| |
| emake "${myemakeargs[@]}" "$@" |
| } |
| |
| src_prepare() { |
| default |
| |
| # We want this to output an unsubstituted string like "$(GENTOO_CFLAGS)" |
| # shellcheck disable=SC2016 |
| sed -r -i -e '/^(CPPFLAGS|CFLAGS)\>/s,^(CPPFLAGS|CFLAGS)\>[[:space:]]+:=,\1 := $(GENTOO_\1),' \ |
| "${S}"/Makefile.inc || die |
| } |
| |
| src_compile() { |
| tc-export CC |
| # Breaks with always_inline |
| filter-flags -fno-semantic-interposition |
| myemake |
| } |
| |
| src_test() { |
| myemake test |
| } |
| |
| src_install() { |
| dodir /sbin |
| |
| myemake DESTDIR="${ED}" install |
| |
| einstalldocs |
| |
| newinitd "${FILESDIR}"/multipathd-r1.rc multipathd |
| newinitd "${FILESDIR}"/multipath.rc multipath |
| |
| find "${ED}" -type f -name '*.la' -delete || die |
| } |
| |
| pkg_postinst() { |
| tmpfiles_process /usr/lib/tmpfiles.d/multipath.conf |
| udev_reload |
| |
| if [[ -z ${REPLACING_VERSIONS} ]] ; then |
| elog "If you need multipath on your system, you must" |
| elog "add 'multipath' into your boot runlevel!" |
| fi |
| } |
| |
| pkg_postrm() { |
| udev_reload |
| } |