| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| inherit flag-o-matic systemd |
| if [[ ${PV} == "9999" ]] ; then |
| ESVN_REPO_URI="https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk/smartmontools" |
| ESVN_PROJECT="smartmontools" |
| inherit subversion autotools |
| else |
| SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" |
| KEYWORDS="*" |
| fi |
| |
| DESCRIPTION="Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) monitoring tools" |
| HOMEPAGE="https://www.smartmontools.org" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| IUSE="caps minimal selinux static update_drivedb" |
| |
| DEPEND=" |
| caps? ( |
| static? ( sys-libs/libcap-ng[static-libs] ) |
| !static? ( sys-libs/libcap-ng ) |
| ) |
| selinux? ( |
| sys-libs/libselinux |
| )" |
| RDEPEND="${DEPEND} |
| !minimal? ( virtual/mailx ) |
| selinux? ( sec-policy/selinux-smartmon ) |
| " |
| |
| src_prepare() { |
| if [[ ${PV} == "9999" ]] ; then |
| eautoreconf |
| fi |
| } |
| |
| src_configure() { |
| use minimal && einfo "Skipping the monitoring daemon for minimal build." |
| use static && append-ldflags -static |
| # The build installs /etc/init.d/smartd, but we clobber it |
| # in our src_install, so no need to manually delete it. |
| myeconfargs=( |
| --docdir="${EPREFIX}/usr/share/doc/${PF}" |
| --with-drivedbdir="${EPREFIX}/var/db/${PN}" #575292 |
| --with-initscriptdir="${EPREFIX}/etc/init.d" |
| $(use_with caps libcap-ng) |
| $(use_with selinux) |
| $(systemd_with_unitdir) |
| $(use_with update_drivedb update-smart-drivedb) |
| ) |
| econf "${myeconfargs[@]}" |
| } |
| |
| src_install() { |
| local db_path="/var/db/${PN}" |
| |
| if use minimal ; then |
| dosbin smartctl |
| doman smartctl.8 |
| else |
| default |
| newinitd "${FILESDIR}"/smartd-r1.rc smartd |
| newconfd "${FILESDIR}"/smartd.confd smartd |
| |
| keepdir ${db_path} |
| if use update_drivedb ; then |
| # Move drivedb.h file out of PM's sight (bug #575292) |
| mv "${ED}"${db_path}/drivedb.h "${T}" || die |
| |
| exeinto /etc/cron.monthly |
| doexe "${FILESDIR}"/${PN}-update-drivedb |
| fi |
| fi |
| } |
| |
| pkg_postinst() { |
| if ! use minimal ; then |
| local db_path="/var/db/${PN}" |
| |
| if [[ -f "${db_path}/drivedb.h" ]] ; then |
| ewarn "WARNING! The drive database file has been replaced with the version that" |
| ewarn "got shipped with this release of ${PN}. You may want to update the" |
| ewarn "database by running the following command as root:" |
| ewarn "" |
| ewarn "/usr/sbin/update-smart-drivedb" |
| fi |
| |
| if use update_drivedb ; then |
| # Move drivedb.h to /var/db/${PN} (bug #575292) |
| mv "${T}"/drivedb.h ${db_path} || die |
| fi |
| fi |
| } |