diff options
Diffstat (limited to 'sys-fs/vhba/vhba-20140928.ebuild')
-rw-r--r-- | sys-fs/vhba/vhba-20140928.ebuild | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/sys-fs/vhba/vhba-20140928.ebuild b/sys-fs/vhba/vhba-20140928.ebuild new file mode 100644 index 000000000000..871c2b1185d6 --- /dev/null +++ b/sys-fs/vhba/vhba-20140928.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit linux-mod user udev + +MY_P=vhba-module-${PV} +DESCRIPTION="Virtual (SCSI) Host Bus Adapter kernel module for the CDEmu suite" +HOMEPAGE="http://cdemu.org" +SRC_URI="mirror://sourceforge/cdemu/${MY_P}.tar.bz2" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~hppa x86" +IUSE="" + +RDEPEND="virtual/udev" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +S=${WORKDIR}/${MY_P} +MODULE_NAMES="vhba(block:${S})" +BUILD_TARGETS=modules + +pkg_setup() { + CONFIG_CHECK="~BLK_DEV_SR ~CHR_DEV_SG" + check_extra_config + BUILD_PARAMS="KDIR=${KV_OUT_DIR}" + linux-mod_pkg_setup + + enewgroup cdemu +} + +src_prepare() { + # Avoid "make jobserver unavailable" warning and -Werror problems + sed -e '/ccflags/s/-Werror$/-Wall/' \ + -i Makefile || die "sed failed" +} + +src_install() { + dodoc AUTHORS ChangeLog README + linux-mod_src_install + + einfo "Generating udev rules ..." + dodir "$(get_udevdir)"/rules.d + cat > "${D}/$(get_udevdir)"/rules.d/70-vhba.rules <<-EOF || die + # do not edit this file, it will be overwritten on update + # + KERNEL=="vhba_ctl", MODE="0660", OWNER="root", GROUP="cdemu" + EOF +} + +pkg_postinst() { + elog "Don't forget to add your user to the cdemu group if you want to" + elog "be able to use virtual cdemu devices." + + # Older versions of vhba installed their rule file in /etc/udev/rules.d, + # which overrides rules in /lib/udev/rules.d. We remove the old file + # automatically if it is identical to the default one installed by + # vhba-1.2.1 or 20101015-r1. Note that the comment at the top of the rules + # file states that it can be automatically overwritten by the system. + old_rules="${ROOT}etc/udev/rules.d/70-vhba.rules" + if [[ -f "${old_rules}" ]]; then + case "$(md5sum ${old_rules})" in + 2959b3cf61cfe6e466cc3516a7bc19de* | 1e7a7e5d6d28c811eeec98ec26ed5d28* ) + elog + elog "Removing old ${old_rules} ..." + rm -f "${old_rules}" || + eerror "Failed, please remove ${old_rules} manually." + ;; + * ) + ewarn + ewarn "The ${old_rules} file from a previous" + ewarn "installation of ${PN} is overriding ${P}'s" + ewarn "udev rules. Unless you had deliberately customized it," + ewarn "you should remove it." + ewarn + ;; + esac + fi + + linux-mod_pkg_postinst +} |