commit: 39cbcae030c6a0ae05e8ed89b563aa6186cf7203
Author: Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Mon Nov 6 20:11:13 2017 +0000
Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Mon Nov 6 20:11:13 2017 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=39cbcae0
sys-apps/smartmontools: add most recent version
6.6 adds a call to `canonicalize_file_name` which is not in musl.
sys-apps/smartmontools/Manifest | 8 ++
sys-apps/smartmontools/files/smartd-r1.rc | 28 ++++
sys-apps/smartmontools/files/smartd.confd | 4 +
sys-apps/smartmontools/files/smartd.systemd | 11 ++
.../files/smartmontools-6.6-realpath.patch | 12 ++
.../files/smartmontools-update-drivedb | 3 +
sys-apps/smartmontools/metadata.xml | 17 +++
sys-apps/smartmontools/smartmontools-6.6.ebuild | 152 +++++++++++++++++++++
8 files changed, 235 insertions(+)
diff --git a/sys-apps/smartmontools/Manifest b/sys-apps/smartmontools/Manifest
new file mode 100644
index 0000000..79bfcac
--- /dev/null
+++ b/sys-apps/smartmontools/Manifest
@@ -0,0 +1,8 @@
+AUX smartd-r1.rc 614 SHA256
acef10e3d963a97c32f525da730eac00be424e7588ab2d7b24ad24dfe032ac88 SHA512
7a46212d2d76b335ac7470b51b44e40b1cdd4814e5db4a8a2f013803bb40ea5072fde64590ffd51754b03a6f80a43e835605a5bb3ac2c23e456633995191ec31
WHIRLPOOL
a452c84a5a562c235f7ef633deea976ff414ce4d3132a201e210f91e8181d78c9a89749d54948d07e8d3206d22a9d111a42d59524b4496d257db2988071195d7
+AUX smartd.confd 107 SHA256
714cc1b253e1f59b884be89693757fec91ca878c62f37451a49ef6bb72263e85 SHA512
ff45462944f01c0e7cac99443078b253dcbaed4f99ffab85052b12361d9eec4beec81cab334fbede9148b3dd503d5205add32ef4327a788f02a8b1e37f460437
WHIRLPOOL
773405a2cc669f6eaae835bc3a6415151891b91ccf4111147f8b12d9763be26cbf65815879a70cd64ae12a36f59840ffcb15ff7e527479f88d9816130e704e76
+AUX smartd.systemd 258 SHA256
72ef7a3ad0e56a144a19aa2b05a0adb147c76cc95e19ac5eb29e4b155c323a8b SHA512
73c49bca755adf0ff1c6ccd221de0fd2bb7804250968fbcb3799e19c66dacc85a6c7a3e0d1eecea683f57d6a3ff01fbd4b4fc47b0eab5747006f0edc21876a7c
WHIRLPOOL
295a9eb8727da9738f926e642f62aa6916f9c80516ec27bca51ce18cc9ead161d9b8db2133261ef8dc97e01d1da6eee14895322792a1199619c1cc46923d8d61
+AUX smartmontools-6.6-realpath.patch 474 SHA256
710dd2eb587d26b7c558b0b80fb0d2aa4f3e885b7f6fc25bf7936e48bbddfba3 SHA512
cced959767d89644fcc6922892ac352612b56e9f1b8057f1799608045da9b055f13b14f37dcf52833128cc9af3d6cf03604b5da9372d5a076a0c67fdba52828d
WHIRLPOOL
b93d222e5836303727b593ffb87a25a17bc430a47cbce422b2b93dfa93fb978668f815c541c7814523fff520475aae710f6fcb0f8b5172f69a297da17c74117f
+AUX smartmontools-update-drivedb 42 SHA256
53a766a094ef63b925e2c3f8c08322b67c2ab40b1f2b84d414e5de4f6747aca8 SHA512
8ad70fc85ab67b7c32eda95dd37517382c2447862df08b810a54dcdedb1eb8148f3a0e29f402a54adff31d1e88d80d09a258ed9e1e13b597ab2a358ebeda0ce8
WHIRLPOOL
3dd62cd6e26a18c9fe5555a1d3feb2597eea6773c857a2cf559331486fc0ef2ef67a0bcb7d1e03b14631d0c8809daae7688d6e1f83f02e8867b0dc23dfcafb55
+DIST smartmontools-6.6.tar.gz 903847 SHA256
51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054 SHA512
64bb533dac29f62ddd662a16a12c97df1af9cbac9ac526ce7af0b3bff9da49cf265a2030d91a7160452b56a67e80d7f34c9b4e45bbb320114f55695e2cb5cfaf
WHIRLPOOL
7a34444977ae069ecf52f9de67077cf67d56a5888bec159ef7e2b19977f821fed8d8b5bca872c6df17cf12a9cb21c0df37dd9bbb44f295774ef93e93f9552bb3
+EBUILD smartmontools-6.6.ebuild 4141 SHA256
eb4741305b2b452dd86ea3d5abe692a1a04e5f22d2837b2a3502c72848730511 SHA512
64860eec966570bf40a483917ee30425f88f514f494161763c16c5b2b4f1c3cefe949fd1407b80270663ee550fcd17212c7720bfd7ae18420b1036b3052bb773
WHIRLPOOL
6e3745292bb67d4889924359d159afd8ab2b93c09ef39f76d228b109e3122931e4e1baccd37809e8ca2802e4ed09bef60b8157a89f70d81c9d8fc707924757e8
+MISC metadata.xml 718 SHA256
774df2c60538f51bdb39e35b0fddeaed32fa18b0d11efe6a4eb52187d84b57c4 SHA512
a6a07e57bd09402839295ee859481d784445afadb12ffd644c6de3af41a4a763225f63d098c328193123d72cdad3b98e278256bb3e67b104015399def014ee54
WHIRLPOOL
e0c7fcd97abb35522e21de6436f621f00f4ae8bbc6137c65f543e25bcda702a89329b6419d954ae59965b3d5dfb048f175746a43cfe6c23af8a95c2733518481
diff --git a/sys-apps/smartmontools/files/smartd-r1.rc
b/sys-apps/smartmontools/files/smartd-r1.rc
new file mode 100644
index 0000000..1aa2ece
--- /dev/null
+++ b/sys-apps/smartmontools/files/smartd-r1.rc
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/run/smartd.pid"
+command="/usr/sbin/smartd"
+command_args="-p ${pidfile} ${SMARTD_OPTS}"
+extra_started_commands="reload"
+
+depend() {
+ need localmount
+ after bootmisc
+}
+
+start_pre() {
+ if [ ! -f "/etc/smartd.conf" ] ; then
+ eerror "You should setup your /etc/smartd.conf file!"
+ eerror "See the smartd.conf(5) manpage."
+ return 1
+ fi
+ return 0
+}
+
+reload() {
+ ebegin "Reloading configuration"
+ start-stop-daemon --signal HUP --pidfile ${pidfile} ${command##*/}
+ eend $?
+}
diff --git a/sys-apps/smartmontools/files/smartd.confd
b/sys-apps/smartmontools/files/smartd.confd
new file mode 100644
index 0000000..4b7db4d
--- /dev/null
+++ b/sys-apps/smartmontools/files/smartd.confd
@@ -0,0 +1,4 @@
+# /etc/conf.d/smartd: config file for /etc/init.d/smartd
+
+# Insert any other options needed
+SMARTD_OPTS=""
diff --git a/sys-apps/smartmontools/files/smartd.systemd
b/sys-apps/smartmontools/files/smartd.systemd
new file mode 100644
index 0000000..bdcbdbb
--- /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/files/smartmontools-6.6-realpath.patch
b/sys-apps/smartmontools/files/smartmontools-6.6-realpath.patch
new file mode 100644
index 0000000..7a80f8a
--- /dev/null
+++ b/sys-apps/smartmontools/files/smartmontools-6.6-realpath.patch
@@ -0,0 +1,12 @@
+diff -Naur smartmontools-6.6.orig/os_linux.cpp smartmontools-6.6/os_linux.cpp
+--- smartmontools-6.6.orig/os_linux.cpp 2017-11-06 12:06:53.605654329
-0800
++++ smartmontools-6.6/os_linux.cpp 2017-11-06 12:07:41.881653464 -0800
+@@ -3176,7 +3176,7 @@
+ {
+ char path[128];
+ snprintf(path, sizeof(path), "/sys/block/%s/device", name);
+- char * syshostpath = canonicalize_file_name(path);
++ char * syshostpath = realpath(path, NULL);
+ if (!syshostpath)
+ return false;
+
diff --git a/sys-apps/smartmontools/files/smartmontools-update-drivedb
b/sys-apps/smartmontools/files/smartmontools-update-drivedb
new file mode 100644
index 0000000..831f1e6
--- /dev/null
+++ b/sys-apps/smartmontools/files/smartmontools-update-drivedb
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/sbin/update-smart-drivedb
diff --git a/sys-apps/smartmontools/metadata.xml
b/sys-apps/smartmontools/metadata.xml
new file mode 100644
index 0000000..0ae4667
--- /dev/null
+++ b/sys-apps/smartmontools/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>[email protected]</email>
+ <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>
+<upstream>
+ <remote-id type="sourceforge">smartmontools</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-apps/smartmontools/smartmontools-6.6.ebuild
b/sys-apps/smartmontools/smartmontools-6.6.ebuild
new file mode 100644
index 0000000..76686b9
--- /dev/null
+++ b/sys-apps/smartmontools/smartmontools-6.6.ebuild
@@ -0,0 +1,152 @@
+# 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? (
+ app-crypt/gnupg
+ || (
+ net-misc/curl
+ net-misc/wget
+ www-client/lynx
+ dev-vcs/subversion
+ )
+ )
+"
+
+REQUIRED_USE="( caps? ( daemon ) )"
+
+PATCHES=( "${FILESDIR}"/${P}-realpath.patch )
+
+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 gnupg)
+ $(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
+}