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>base-sys...@gentoo.org</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
+}

Reply via email to