public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Thomas Deutschmann" <whissi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/smartmontools/files/, sys-apps/smartmontools/
Date: Tue, 31 Oct 2017 21:53:16 +0000 (UTC)	[thread overview]
Message-ID: <1509486776.ad8950f967e37dcff1fb1ab9fcd2e0b4001b0a69.whissi@gentoo> (raw)

commit:     ad8950f967e37dcff1fb1ab9fcd2e0b4001b0a69
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 31 21:51:15 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Oct 31 21:52:56 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad8950f9

sys-apps/smartmontools: Rev bump to address several problems

- EAPI updated to EAPI 6.

- Depend on sys-freebsd/freebsd-lib[usb] on FreeBSD. (bug #552054)

- Update smartd systemd service to reflect that we don't provide a general
  config file for the service. Users are supposed to overwrite the
  provided service if they want to pass additional
  parameters. (bug #527648)

- We no longer install executable files in /usr/share/{PN}. (bug #622072)

- "minimal" USE flag was replaced by "daemon" USE flag to better indicate
  what the USE flag does.

- "caps" USE flag now requires "daemon" USE flag.

- It is now possible to use the "update_drivedb" USE flag
  alone (i.e. without the "minimal", now "daemon" USE flag). (bug #635700)

- The drive database logic was rewritten: Per default we try to install
  the drive database shipped with the package. If there's already a drive
  database installed we will not replace the database anymore in
  assumption that the user has updated the database in the meantime and
  want to preserve the changes.
  A warning will be displayed in this case with an instruction how to
  update or restore the default drive database shipped with the package.
  The new logic now also works when using binary packages. (bug #575292)

- RDEPENDs on net-misc/curl, net-misc/wget, www-client/lynx and
  dev-vcs/subversion (just one of them is required!) were added when using
  "update_drivedb" USE flag.

Closes: https://bugs.gentoo.org/552054
Closes: https://bugs.gentoo.org/527648
Closes: https://bugs.gentoo.org/622072
Closes: https://bugs.gentoo.org/635700
Closes: https://bugs.gentoo.org/575292
Package-Manager: Portage-2.3.13, Repoman-2.3.4

 sys-apps/smartmontools/files/smartd.systemd        |  11 ++
 sys-apps/smartmontools/metadata.xml                |   2 +
 sys-apps/smartmontools/smartmontools-6.5-r1.ebuild | 148 +++++++++++++++++++++
 3 files changed, 161 insertions(+)

diff --git a/sys-apps/smartmontools/files/smartd.systemd b/sys-apps/smartmontools/files/smartd.systemd
new file mode 100644
index 00000000000..bdcbdbbe306
--- /dev/null
+++ b/sys-apps/smartmontools/files/smartd.systemd
@@ -0,0 +1,11 @@
+[Unit]
+Description=Self Monitoring and Reporting Technology (SMART) Daemon
+Documentation=man:smartd(8) man:smartd.conf(5)
+
+[Service]
+ExecStart=/usr/sbin/smartd -n
+ExecReload=/bin/kill -HUP $MAINPID
+StandardOutput=syslog
+
+[Install]
+WantedBy=multi-user.target

diff --git a/sys-apps/smartmontools/metadata.xml b/sys-apps/smartmontools/metadata.xml
index b3555884800..0ae4667bf8d 100644
--- a/sys-apps/smartmontools/metadata.xml
+++ b/sys-apps/smartmontools/metadata.xml
@@ -6,6 +6,8 @@
 	<name>Gentoo Base System</name>
 </maintainer>
 <use>
+	<flag name="caps">Build against <pkg>sys-libs/libcap-ng</pkg> to allow smartd to drop its privileges.</flag>
+	<flag name="daemon">Install the monitoring daemon (smartd) and associated scripts.</flag>
 	<flag name="minimal">Do not install the monitoring daemon and associated scripts.</flag>
 	<flag name="update_drivedb">Install a script to update the drivedb file.</flag>
 </use>

diff --git a/sys-apps/smartmontools/smartmontools-6.5-r1.ebuild b/sys-apps/smartmontools/smartmontools-6.5-r1.ebuild
new file mode 100644
index 00000000000..499584db4c3
--- /dev/null
+++ b/sys-apps/smartmontools/smartmontools-6.5-r1.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit autotools flag-o-matic systemd
+if [[ ${PV} == "9999" ]] ; then
+	ESVN_REPO_URI="https://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools"
+	ESVN_PROJECT="smartmontools"
+	inherit subversion
+else
+	SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Tools to monitor storage systems to provide advanced warning of disk degradation"
+HOMEPAGE="https://www.smartmontools.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="caps +daemon selinux static update_drivedb"
+
+DEPEND="
+	caps? (
+		static? ( sys-libs/libcap-ng[static-libs] )
+		!static? ( sys-libs/libcap-ng )
+	)
+	kernel_FreeBSD? (
+		sys-freebsd/freebsd-lib[usb]
+	)
+	selinux? (
+		sys-libs/libselinux
+	)"
+RDEPEND="${DEPEND}
+	daemon? ( virtual/mailx )
+	selinux? ( sec-policy/selinux-smartmon )
+	update_drivedb? (
+		|| (
+			net-misc/curl
+			net-misc/wget
+			www-client/lynx
+			dev-vcs/subversion
+		)
+	)
+"
+
+REQUIRED_USE="( caps? ( daemon ) )"
+
+src_prepare() {
+	default
+
+	eautoreconf
+}
+
+src_configure() {
+	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)
+		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+		$(use_with update_drivedb update-smart-drivedb)
+	)
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	local db_path="/var/db/${PN}"
+
+	if use daemon; then
+		default
+
+		newinitd "${FILESDIR}"/smartd-r1.rc smartd
+		newconfd "${FILESDIR}"/smartd.confd smartd
+		systemd_newunit "${FILESDIR}"/smartd.systemd smartd.service
+	else
+		dosbin smartctl
+		doman smartctl.8
+
+		local DOCS=( AUTHORS ChangeL* COPYING INSTALL NEWS README TODO )
+		einstalldocs
+	fi
+
+	if use update_drivedb ; then
+		if ! use daemon; then
+			dosbin "${S}"/update-smart-drivedb
+		fi
+
+		exeinto /etc/cron.monthly
+		doexe "${FILESDIR}/${PN}-update-drivedb"
+	fi
+
+	if use daemon || use update_drivedb; then
+		keepdir "${db_path}"
+
+		# Install a copy of the initial drivedb.h to /usr/share/${PN}
+		# so that we can access that file later in pkg_postinst
+		# even when dealing with binary packages (bug #575292)
+		insinto /usr/share/${PN}
+		doins "${S}"/drivedb.h
+	fi
+
+	# Make sure we never install drivedb.h into the db location
+	# of the acutal image so we don't record hashes because user
+	# can modify that file
+	rm -f "${ED%/}${db_path}/drivedb.h" || die
+
+	# Bug #622072
+	find "${ED%/}"/usr/share/doc -type f -exec chmod a-x '{}' \; || die
+}
+
+pkg_postinst() {
+	if use daemon || use update_drivedb; then
+		local initial_db_file="${EPREFIX%/}/usr/share/${PN}/drivedb.h"
+		local db_path="${EPREFIX%/}/var/db/${PN}"
+
+		if [[ ! -f "${db_path}/drivedb.h" ]] ; then
+			# No initial database found
+			cp "${initial_db_file}" "${db_path}" || die
+			einfo "Default drive database which was shipped with this release of ${PN}"
+			einfo "has been installed to '${db_path}'."
+		else
+			ewarn "WARNING: There's already a drive database in '${db_path}'!"
+			ewarn "Because we cannot determine if this database is untouched"
+			ewarn "or was modified by the user you have to manually update the"
+			ewarn "drive database:"
+			ewarn ""
+			ewarn "a) Replace '${db_path}/drivedb.h' by the database shipped with this"
+			ewarn "   release which can be found in '${initial_db_file}', i.e."
+			ewarn ""
+			ewarn "     cp \"${initial_db_file}\" \"${db_path}\""
+			ewarn ""
+			ewarn "b) Run the following command as root:"
+			ewarn ""
+			ewarn "     /usr/sbin/update-smart-drivedb"
+
+			if ! use update_drivedb ; then
+				ewarn ""
+				ewarn "However, 'update-smart-drivedb' requires that you re-emerge ${PN}"
+				ewarn "with USE='update_drivedb'."
+			fi
+		fi
+	fi
+}


             reply	other threads:[~2017-10-31 21:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-31 21:53 Thomas Deutschmann [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-11-06 20:35 [gentoo-commits] repo/gentoo:master commit in: sys-apps/smartmontools/files/, sys-apps/smartmontools/ Louis Sautier
2018-01-14 19:11 Thomas Deutschmann
2016-04-18 13:56 Lars Wendler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1509486776.ad8950f967e37dcff1fb1ab9fcd2e0b4001b0a69.whissi@gentoo \
    --to=whissi@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox