Gentoo Archives: gentoo-commits

From: Aric Belsito <lluixhi@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/musl:master commit in: sys-apps/smartmontools/files/, sys-apps/smartmontools/
Date: Mon, 06 Nov 2017 20:12:32
Message-Id: 1509999073.39cbcae030c6a0ae05e8ed89b563aa6186cf7203.lluixhi@gentoo
1 commit: 39cbcae030c6a0ae05e8ed89b563aa6186cf7203
2 Author: Aric Belsito <lluixhi <AT> gmail <DOT> com>
3 AuthorDate: Mon Nov 6 20:11:13 2017 +0000
4 Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com>
5 CommitDate: Mon Nov 6 20:11:13 2017 +0000
6 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=39cbcae0
7
8 sys-apps/smartmontools: add most recent version
9
10 6.6 adds a call to `canonicalize_file_name` which is not in musl.
11
12 sys-apps/smartmontools/Manifest | 8 ++
13 sys-apps/smartmontools/files/smartd-r1.rc | 28 ++++
14 sys-apps/smartmontools/files/smartd.confd | 4 +
15 sys-apps/smartmontools/files/smartd.systemd | 11 ++
16 .../files/smartmontools-6.6-realpath.patch | 12 ++
17 .../files/smartmontools-update-drivedb | 3 +
18 sys-apps/smartmontools/metadata.xml | 17 +++
19 sys-apps/smartmontools/smartmontools-6.6.ebuild | 152 +++++++++++++++++++++
20 8 files changed, 235 insertions(+)
21
22 diff --git a/sys-apps/smartmontools/Manifest b/sys-apps/smartmontools/Manifest
23 new file mode 100644
24 index 0000000..79bfcac
25 --- /dev/null
26 +++ b/sys-apps/smartmontools/Manifest
27 @@ -0,0 +1,8 @@
28 +AUX smartd-r1.rc 614 SHA256 acef10e3d963a97c32f525da730eac00be424e7588ab2d7b24ad24dfe032ac88 SHA512 7a46212d2d76b335ac7470b51b44e40b1cdd4814e5db4a8a2f013803bb40ea5072fde64590ffd51754b03a6f80a43e835605a5bb3ac2c23e456633995191ec31 WHIRLPOOL a452c84a5a562c235f7ef633deea976ff414ce4d3132a201e210f91e8181d78c9a89749d54948d07e8d3206d22a9d111a42d59524b4496d257db2988071195d7
29 +AUX smartd.confd 107 SHA256 714cc1b253e1f59b884be89693757fec91ca878c62f37451a49ef6bb72263e85 SHA512 ff45462944f01c0e7cac99443078b253dcbaed4f99ffab85052b12361d9eec4beec81cab334fbede9148b3dd503d5205add32ef4327a788f02a8b1e37f460437 WHIRLPOOL 773405a2cc669f6eaae835bc3a6415151891b91ccf4111147f8b12d9763be26cbf65815879a70cd64ae12a36f59840ffcb15ff7e527479f88d9816130e704e76
30 +AUX smartd.systemd 258 SHA256 72ef7a3ad0e56a144a19aa2b05a0adb147c76cc95e19ac5eb29e4b155c323a8b SHA512 73c49bca755adf0ff1c6ccd221de0fd2bb7804250968fbcb3799e19c66dacc85a6c7a3e0d1eecea683f57d6a3ff01fbd4b4fc47b0eab5747006f0edc21876a7c WHIRLPOOL 295a9eb8727da9738f926e642f62aa6916f9c80516ec27bca51ce18cc9ead161d9b8db2133261ef8dc97e01d1da6eee14895322792a1199619c1cc46923d8d61
31 +AUX smartmontools-6.6-realpath.patch 474 SHA256 710dd2eb587d26b7c558b0b80fb0d2aa4f3e885b7f6fc25bf7936e48bbddfba3 SHA512 cced959767d89644fcc6922892ac352612b56e9f1b8057f1799608045da9b055f13b14f37dcf52833128cc9af3d6cf03604b5da9372d5a076a0c67fdba52828d WHIRLPOOL b93d222e5836303727b593ffb87a25a17bc430a47cbce422b2b93dfa93fb978668f815c541c7814523fff520475aae710f6fcb0f8b5172f69a297da17c74117f
32 +AUX smartmontools-update-drivedb 42 SHA256 53a766a094ef63b925e2c3f8c08322b67c2ab40b1f2b84d414e5de4f6747aca8 SHA512 8ad70fc85ab67b7c32eda95dd37517382c2447862df08b810a54dcdedb1eb8148f3a0e29f402a54adff31d1e88d80d09a258ed9e1e13b597ab2a358ebeda0ce8 WHIRLPOOL 3dd62cd6e26a18c9fe5555a1d3feb2597eea6773c857a2cf559331486fc0ef2ef67a0bcb7d1e03b14631d0c8809daae7688d6e1f83f02e8867b0dc23dfcafb55
33 +DIST smartmontools-6.6.tar.gz 903847 SHA256 51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054 SHA512 64bb533dac29f62ddd662a16a12c97df1af9cbac9ac526ce7af0b3bff9da49cf265a2030d91a7160452b56a67e80d7f34c9b4e45bbb320114f55695e2cb5cfaf WHIRLPOOL 7a34444977ae069ecf52f9de67077cf67d56a5888bec159ef7e2b19977f821fed8d8b5bca872c6df17cf12a9cb21c0df37dd9bbb44f295774ef93e93f9552bb3
34 +EBUILD smartmontools-6.6.ebuild 4141 SHA256 eb4741305b2b452dd86ea3d5abe692a1a04e5f22d2837b2a3502c72848730511 SHA512 64860eec966570bf40a483917ee30425f88f514f494161763c16c5b2b4f1c3cefe949fd1407b80270663ee550fcd17212c7720bfd7ae18420b1036b3052bb773 WHIRLPOOL 6e3745292bb67d4889924359d159afd8ab2b93c09ef39f76d228b109e3122931e4e1baccd37809e8ca2802e4ed09bef60b8157a89f70d81c9d8fc707924757e8
35 +MISC metadata.xml 718 SHA256 774df2c60538f51bdb39e35b0fddeaed32fa18b0d11efe6a4eb52187d84b57c4 SHA512 a6a07e57bd09402839295ee859481d784445afadb12ffd644c6de3af41a4a763225f63d098c328193123d72cdad3b98e278256bb3e67b104015399def014ee54 WHIRLPOOL e0c7fcd97abb35522e21de6436f621f00f4ae8bbc6137c65f543e25bcda702a89329b6419d954ae59965b3d5dfb048f175746a43cfe6c23af8a95c2733518481
36
37 diff --git a/sys-apps/smartmontools/files/smartd-r1.rc b/sys-apps/smartmontools/files/smartd-r1.rc
38 new file mode 100644
39 index 0000000..1aa2ece
40 --- /dev/null
41 +++ b/sys-apps/smartmontools/files/smartd-r1.rc
42 @@ -0,0 +1,28 @@
43 +#!/sbin/openrc-run
44 +# Copyright 1999-2016 Gentoo Foundation
45 +# Distributed under the terms of the GNU General Public License v2
46 +
47 +pidfile="/run/smartd.pid"
48 +command="/usr/sbin/smartd"
49 +command_args="-p ${pidfile} ${SMARTD_OPTS}"
50 +extra_started_commands="reload"
51 +
52 +depend() {
53 + need localmount
54 + after bootmisc
55 +}
56 +
57 +start_pre() {
58 + if [ ! -f "/etc/smartd.conf" ] ; then
59 + eerror "You should setup your /etc/smartd.conf file!"
60 + eerror "See the smartd.conf(5) manpage."
61 + return 1
62 + fi
63 + return 0
64 +}
65 +
66 +reload() {
67 + ebegin "Reloading configuration"
68 + start-stop-daemon --signal HUP --pidfile ${pidfile} ${command##*/}
69 + eend $?
70 +}
71
72 diff --git a/sys-apps/smartmontools/files/smartd.confd b/sys-apps/smartmontools/files/smartd.confd
73 new file mode 100644
74 index 0000000..4b7db4d
75 --- /dev/null
76 +++ b/sys-apps/smartmontools/files/smartd.confd
77 @@ -0,0 +1,4 @@
78 +# /etc/conf.d/smartd: config file for /etc/init.d/smartd
79 +
80 +# Insert any other options needed
81 +SMARTD_OPTS=""
82
83 diff --git a/sys-apps/smartmontools/files/smartd.systemd b/sys-apps/smartmontools/files/smartd.systemd
84 new file mode 100644
85 index 0000000..bdcbdbb
86 --- /dev/null
87 +++ b/sys-apps/smartmontools/files/smartd.systemd
88 @@ -0,0 +1,11 @@
89 +[Unit]
90 +Description=Self Monitoring and Reporting Technology (SMART) Daemon
91 +Documentation=man:smartd(8) man:smartd.conf(5)
92 +
93 +[Service]
94 +ExecStart=/usr/sbin/smartd -n
95 +ExecReload=/bin/kill -HUP $MAINPID
96 +StandardOutput=syslog
97 +
98 +[Install]
99 +WantedBy=multi-user.target
100
101 diff --git a/sys-apps/smartmontools/files/smartmontools-6.6-realpath.patch b/sys-apps/smartmontools/files/smartmontools-6.6-realpath.patch
102 new file mode 100644
103 index 0000000..7a80f8a
104 --- /dev/null
105 +++ b/sys-apps/smartmontools/files/smartmontools-6.6-realpath.patch
106 @@ -0,0 +1,12 @@
107 +diff -Naur smartmontools-6.6.orig/os_linux.cpp smartmontools-6.6/os_linux.cpp
108 +--- smartmontools-6.6.orig/os_linux.cpp 2017-11-06 12:06:53.605654329 -0800
109 ++++ smartmontools-6.6/os_linux.cpp 2017-11-06 12:07:41.881653464 -0800
110 +@@ -3176,7 +3176,7 @@
111 + {
112 + char path[128];
113 + snprintf(path, sizeof(path), "/sys/block/%s/device", name);
114 +- char * syshostpath = canonicalize_file_name(path);
115 ++ char * syshostpath = realpath(path, NULL);
116 + if (!syshostpath)
117 + return false;
118 +
119
120 diff --git a/sys-apps/smartmontools/files/smartmontools-update-drivedb b/sys-apps/smartmontools/files/smartmontools-update-drivedb
121 new file mode 100644
122 index 0000000..831f1e6
123 --- /dev/null
124 +++ b/sys-apps/smartmontools/files/smartmontools-update-drivedb
125 @@ -0,0 +1,3 @@
126 +#!/bin/sh
127 +
128 +/usr/sbin/update-smart-drivedb
129
130 diff --git a/sys-apps/smartmontools/metadata.xml b/sys-apps/smartmontools/metadata.xml
131 new file mode 100644
132 index 0000000..0ae4667
133 --- /dev/null
134 +++ b/sys-apps/smartmontools/metadata.xml
135 @@ -0,0 +1,17 @@
136 +<?xml version="1.0" encoding="UTF-8"?>
137 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
138 +<pkgmetadata>
139 +<maintainer type="project">
140 + <email>base-system@g.o</email>
141 + <name>Gentoo Base System</name>
142 +</maintainer>
143 +<use>
144 + <flag name="caps">Build against <pkg>sys-libs/libcap-ng</pkg> to allow smartd to drop its privileges.</flag>
145 + <flag name="daemon">Install the monitoring daemon (smartd) and associated scripts.</flag>
146 + <flag name="minimal">Do not install the monitoring daemon and associated scripts.</flag>
147 + <flag name="update_drivedb">Install a script to update the drivedb file.</flag>
148 +</use>
149 +<upstream>
150 + <remote-id type="sourceforge">smartmontools</remote-id>
151 +</upstream>
152 +</pkgmetadata>
153
154 diff --git a/sys-apps/smartmontools/smartmontools-6.6.ebuild b/sys-apps/smartmontools/smartmontools-6.6.ebuild
155 new file mode 100644
156 index 0000000..76686b9
157 --- /dev/null
158 +++ b/sys-apps/smartmontools/smartmontools-6.6.ebuild
159 @@ -0,0 +1,152 @@
160 +# Copyright 1999-2017 Gentoo Foundation
161 +# Distributed under the terms of the GNU General Public License v2
162 +
163 +EAPI=6
164 +
165 +inherit autotools flag-o-matic systemd
166 +if [[ ${PV} == "9999" ]] ; then
167 + ESVN_REPO_URI="https://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools"
168 + ESVN_PROJECT="smartmontools"
169 + inherit subversion
170 +else
171 + SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
172 + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~x64-macos"
173 +fi
174 +
175 +DESCRIPTION="Tools to monitor storage systems to provide advanced warning of disk degradation"
176 +HOMEPAGE="https://www.smartmontools.org"
177 +
178 +LICENSE="GPL-2"
179 +SLOT="0"
180 +IUSE="caps +daemon selinux static update_drivedb"
181 +
182 +DEPEND="
183 + caps? (
184 + static? ( sys-libs/libcap-ng[static-libs] )
185 + !static? ( sys-libs/libcap-ng )
186 + )
187 + kernel_FreeBSD? (
188 + sys-freebsd/freebsd-lib[usb]
189 + )
190 + selinux? (
191 + sys-libs/libselinux
192 + )"
193 +RDEPEND="${DEPEND}
194 + daemon? ( virtual/mailx )
195 + selinux? ( sec-policy/selinux-smartmon )
196 + update_drivedb? (
197 + app-crypt/gnupg
198 + || (
199 + net-misc/curl
200 + net-misc/wget
201 + www-client/lynx
202 + dev-vcs/subversion
203 + )
204 + )
205 +"
206 +
207 +REQUIRED_USE="( caps? ( daemon ) )"
208 +
209 +PATCHES=( "${FILESDIR}"/${P}-realpath.patch )
210 +
211 +src_prepare() {
212 + default
213 +
214 + eautoreconf
215 +}
216 +
217 +src_configure() {
218 + use static && append-ldflags -static
219 + # The build installs /etc/init.d/smartd, but we clobber it
220 + # in our src_install, so no need to manually delete it.
221 + myeconfargs=(
222 + --docdir="${EPREFIX}/usr/share/doc/${PF}"
223 + --with-drivedbdir="${EPREFIX}/var/db/${PN}" #575292
224 + --with-initscriptdir="${EPREFIX}/etc/init.d"
225 + $(use_with caps libcap-ng)
226 + $(use_with selinux)
227 + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
228 + $(use_with update_drivedb gnupg)
229 + $(use_with update_drivedb update-smart-drivedb)
230 + )
231 + econf "${myeconfargs[@]}"
232 +}
233 +
234 +src_install() {
235 + local db_path="/var/db/${PN}"
236 +
237 + if use daemon; then
238 + default
239 +
240 + newinitd "${FILESDIR}"/smartd-r1.rc smartd
241 + newconfd "${FILESDIR}"/smartd.confd smartd
242 + systemd_newunit "${FILESDIR}"/smartd.systemd smartd.service
243 + else
244 + dosbin smartctl
245 + doman smartctl.8
246 +
247 + local DOCS=( AUTHORS ChangeL* COPYING INSTALL NEWS README TODO )
248 + einstalldocs
249 + fi
250 +
251 + if use update_drivedb ; then
252 + if ! use daemon; then
253 + dosbin "${S}"/update-smart-drivedb
254 + fi
255 +
256 + exeinto /etc/cron.monthly
257 + doexe "${FILESDIR}/${PN}-update-drivedb"
258 + fi
259 +
260 + if use daemon || use update_drivedb; then
261 + keepdir "${db_path}"
262 +
263 + # Install a copy of the initial drivedb.h to /usr/share/${PN}
264 + # so that we can access that file later in pkg_postinst
265 + # even when dealing with binary packages (bug #575292)
266 + insinto /usr/share/${PN}
267 + doins "${S}"/drivedb.h
268 + fi
269 +
270 + # Make sure we never install drivedb.h into the db location
271 + # of the acutal image so we don't record hashes because user
272 + # can modify that file
273 + rm -f "${ED%/}${db_path}/drivedb.h" || die
274 +
275 + # Bug #622072
276 + find "${ED%/}"/usr/share/doc -type f -exec chmod a-x '{}' \; || die
277 +}
278 +
279 +pkg_postinst() {
280 + if use daemon || use update_drivedb; then
281 + local initial_db_file="${EPREFIX%/}/usr/share/${PN}/drivedb.h"
282 + local db_path="${EPREFIX%/}/var/db/${PN}"
283 +
284 + if [[ ! -f "${db_path}/drivedb.h" ]] ; then
285 + # No initial database found
286 + cp "${initial_db_file}" "${db_path}" || die
287 + einfo "Default drive database which was shipped with this release of ${PN}"
288 + einfo "has been installed to '${db_path}'."
289 + else
290 + ewarn "WARNING: There's already a drive database in '${db_path}'!"
291 + ewarn "Because we cannot determine if this database is untouched"
292 + ewarn "or was modified by the user you have to manually update the"
293 + ewarn "drive database:"
294 + ewarn ""
295 + ewarn "a) Replace '${db_path}/drivedb.h' by the database shipped with this"
296 + ewarn " release which can be found in '${initial_db_file}', i.e."
297 + ewarn ""
298 + ewarn " cp \"${initial_db_file}\" \"${db_path}\""
299 + ewarn ""
300 + ewarn "b) Run the following command as root:"
301 + ewarn ""
302 + ewarn " /usr/sbin/update-smart-drivedb"
303 +
304 + if ! use update_drivedb ; then
305 + ewarn ""
306 + ewarn "However, 'update-smart-drivedb' requires that you re-emerge ${PN}"
307 + ewarn "with USE='update_drivedb'."
308 + fi
309 + fi
310 + fi
311 +}