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 |
+} |