Sync from SUSE:SLFO:Main libatasmart revision 576a0eae76f6a9d78e5c58690309186f

This commit is contained in:
Adrian Schröter 2024-05-03 14:34:08 +02:00
commit 54d7c7f2a2
5 changed files with 278 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

View File

@ -0,0 +1,26 @@
Author: Phillip Susi <psusi@ubuntu.com>
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;

BIN
libatasmart-0.19.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

113
libatasmart.changes Normal file
View File

@ -0,0 +1,113 @@
-------------------------------------------------------------------
Sat Jan 4 15:53:10 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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

113
libatasmart.spec Normal file
View File

@ -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