commit 54d7c7f2a2bb44dc8964a79365e0b2f8d75ff8baaf4a7a007e1d88c75d1007bd Author: Adrian Schröter Date: Fri May 3 14:34:08 2024 +0200 Sync from SUSE:SLFO:Main libatasmart revision 576a0eae76f6a9d78e5c58690309186f diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/libatasmart-0.19-wd-fix.patch b/libatasmart-0.19-wd-fix.patch new file mode 100644 index 0000000..c8b2ae6 --- /dev/null +++ b/libatasmart-0.19-wd-fix.patch @@ -0,0 +1,26 @@ +Author: Phillip Susi +Subject: fix an incorrect IO error reading SMART status +Description: The read SMART status command's return status + was testing for a success/failure value that included 8 + bits that are "N/A" according to the standard, and required + that they be zeros. At least some drives do not fill them + with zeros, so correct this by masking off the undefined + bits. + +Index: b/atasmart.c +=================================================================== +--- a/atasmart.c ++++ b/atasmart.c +@@ -925,10 +925,10 @@ + /* SAT/USB bridges truncate packets, so we only check for 4F, + * not for 2C on those */ + if ((d->type == SK_DISK_TYPE_ATA_PASSTHROUGH_12 || cmd[3] == htons(0x00C2U)) && +- cmd[4] == htons(0x4F00U)) ++ (cmd[4] & htons(0xFF00U)) == htons(0x4F00U)) + *good = TRUE; + else if ((d->type == SK_DISK_TYPE_ATA_PASSTHROUGH_12 || cmd[3] == htons(0x002CU)) && +- cmd[4] == htons(0xF400U)) ++ (cmd[4] & htons(0xFF00U)) == htons(0xF400U)) + *good = FALSE; + else { + errno = EIO; diff --git a/libatasmart-0.19.tar.xz b/libatasmart-0.19.tar.xz new file mode 100644 index 0000000..dfe1e0b --- /dev/null +++ b/libatasmart-0.19.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f0ea345f63d28ab2ff0dc352c22271661b66bf09642db3a4049ac9dbdb0f8d +size 251204 diff --git a/libatasmart.changes b/libatasmart.changes new file mode 100644 index 0000000..43393b0 --- /dev/null +++ b/libatasmart.changes @@ -0,0 +1,113 @@ +------------------------------------------------------------------- +Sat Jan 4 15:53:10 UTC 2020 - Stefan Brüns + +- Modernize spec file +- Use pkgconfig(libudev) instead of libudev-devel, allows shortcut + via systemd-mini package. + +------------------------------------------------------------------- +Wed Sep 13 18:45:50 UTC 2017 - zaitor@opensuse.org + +- Add libatasmart-0.19-wd-fix.patch: Fix issue with WD drives. + Fixes fdo#61998. + +------------------------------------------------------------------- +Fri Apr 29 12:59:30 UTC 2016 - perry.werneck@gmail.com + +- Adding "xz" as BuildRequires since it's not default on SLES11 and + using a bigger description. + +------------------------------------------------------------------- +Fri Sep 14 18:11:09 UTC 2012 - vuntz@opensuse.org + +- Update to version 0.19: + + Add quirks for Intel SSD Serie 320 + + Add S.M.A.R.T attributes for Samsung SSD + +------------------------------------------------------------------- +Tue Nov 15 16:52:14 UTC 2011 - vuntz@opensuse.org + +- Update to version 0.18: + + Add support for end-to-end-error, command-timeout, + available-reserved-space, program-fail-count, erase-fail-count + attributes. + + Display endurance-remaining as percentage decreasing from 100 + to 0. + + Show MB, GB or TB depending on the value. + + Ignore sector count if it is -1. + + Speed up get_overall() and get_bad(). + + Restrict the list of exported symbols to sk_.* + + Use quirks for more Apple SSD firmware versions + + Blacklist an Oxford Semiconductor bridge. + + Add INTEL SSD 320 120GB blob and several quirks for Intel SSD + G3 (Available Reserved Space, Media Wearout Indicator, Total + LBAs Written, Timed Workload Media Wear, Timed Workload Host + Reads, Workload Timer, etc.) + + Several small bug fixes and other code changes. + + Build system improvements. +- Drop libatasmart-initialize.patch: fixed upstream. + +------------------------------------------------------------------- +Sun Oct 31 10:41:33 UTC 2010 - jengelh@medozas.de + +- Use %_smp_mflags + +------------------------------------------------------------------- +Tue Mar 16 10:35:41 CET 2010 - ro@suse.de + +- fix build by initializing member suffix_of in strpool.c + +------------------------------------------------------------------- +Fri Nov 13 12:54:33 CET 2009 - vuntz@opensuse.org + +- Update to version 0.17: + + Add various blobs + + Ignore attributes 5 and 190 on some Apple SSD + + Check the right boolean when calculating blob size + + Delay smart initialization until the first SMART call is done +- Changes from version 0.16: + + Disable jmicron access mode for some more jmicron bridges +- Changes from version 0.15: + + Support some ssd smart attrs + + Add various blobs. + + Blacklist 152d:2329 jmicron usb bridges + + Add vala vapi files. +- Drop libatasmart-jmicron.patch: fixed upstream. + +------------------------------------------------------------------- +Fri Oct 2 15:08:43 CEST 2009 - vuntz@opensuse.org + +- Add libatasmart-jmicron.patch to fix issues with some bridges not + working well. See rh#515881 for details. + +------------------------------------------------------------------- +Wed Sep 9 18:32:00 CEST 2009 - vuntz@opensuse.org + +- Update to version 0.14: + + Get rid of qurik 9_UNKNOWN again + + add missing 'else' + + add another sunplus bridge to the list of supported sunplus + bridges + + look at lower 32 bit of current-pending-sector raw data only, + similar to reallocated-sector-count + + black list a few attributes on FUJITSU MHY2120BH/0085000B + + rename SK_DISK_TYPE_ATA to SK_DISK_TYPE_LINUX_IDE + + allow prefixing device strings with access methods + + show full device string when dumping status + + if the ID_ATA_SMART_ACCESS udev env var is set for a device + read the access method from it + + blacklist attribute 5 of an hitachi drive + + verify parsing of all attributes + + add MHY2250B/0085000B to quirk db + + rename failed to bad + + rework logic that determines verdict of drive + + bump soname due to ABI change + + add entries to database + + fix parsing of power-on-minutes + + highlight if smart status is bad +- Rename libatasmart0 to libatasmart4 because of soname change. + +------------------------------------------------------------------- +Sun May 10 02:22:38 CET 2009 - mboman@suse.de + +- First checkin diff --git a/libatasmart.spec b/libatasmart.spec new file mode 100644 index 0000000..fbcb061 --- /dev/null +++ b/libatasmart.spec @@ -0,0 +1,113 @@ +# +# spec file for package libatasmart +# +# Copyright (c) 2020 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: libatasmart +Version: 0.19 +Release: 0 +Summary: ATA S.M.A.R.T. Disk Health Monitoring Library +License: LGPL-2.1-or-later +Group: System/Libraries +URL: http://git.0pointer.net/libatasmart.git/ +Source: http://0pointer.de/public/%{name}-%{version}.tar.xz +Patch0: libatasmart-0.19-wd-fix.patch + +BuildRequires: pkgconfig +BuildRequires: xz +BuildRequires: pkgconfig(libudev) + +%description +A small and lightweight parser library for ATA S.M.A.R.T. hard disk +health monitoring. + +As the name suggests libatasmart only does ATA S.M.A.R.T., +there is no support for SCSI harddisks. SCSI S.M.A.R.T. is a +very different system, support for it should be implemented in +a separate library "libscsismart" if there should ever be +demand for it. + +This library is supposed to be lean and small and thus +supports only a subset of the S.M.A.R.T. functionality. +However, I claim that it implements the relevant part of it. +If you need full control over all S.M.A.R.T. functionality of +your hardware please refer to Buce Allen's smartmontools. + +%package -n libatasmart4 +Summary: ATA S.M.A.R.T. Disk Health Monitoring Library +Group: System/Libraries + +%description -n libatasmart4 +A small and lightweight parser library for ATA S.M.A.R.T. hard disk +health monitoring. + +%package utils +Summary: ATA S.M.A.R.T. Disk Health Monitoring Library - Utilities +Group: Hardware/Other +Requires: libatasmart4 = %{version} + +%description utils +A small and lightweight parser library for ATA S.M.A.R.T. hard disk +health monitoring. + +%package devel +Summary: ATA S.M.A.R.T. Disk Health Monitoring Library - Development Files +Group: Development/Libraries/C and C++ +Requires: libatasmart4 = %{version} + +%description devel +A small and lightweight parser library for ATA S.M.A.R.T. hard disk +health monitoring. + +%prep +%setup -q +%patch0 -p1 + +%build +%configure --disable-static +make %{?_smp_mflags} + +%install +%makeinstall +rm -f %{buildroot}%{_libdir}/*.la +# We already package this +rm %{buildroot}%{_datadir}/doc/libatasmart/README + +%clean +rm -rf %{buildroot} + +%post -n libatasmart4 -p /sbin/ldconfig + +%postun -n libatasmart4 -p /sbin/ldconfig + +%files -n libatasmart4 +%doc README +%license LGPL +%{_libdir}/libatasmart.so.* + +%files utils +%{_sbindir}/sk* + +%files devel +%doc blob-examples/ +%{_includedir}/atasmart.h +%{_libdir}/libatasmart.so +%{_libdir}/pkgconfig/libatasmart.pc +%dir %{_datadir}/vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala/vapi/*.vapi + +%changelog