diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..acd1c1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/hdparm-9.43.tar.gz diff --git a/.hdparm.metadata b/.hdparm.metadata new file mode 100644 index 0000000..2fa3f9b --- /dev/null +++ b/.hdparm.metadata @@ -0,0 +1 @@ +3ffbcf46237245868a569125a6d5c92a0e07e7ce SOURCES/hdparm-9.43.tar.gz diff --git a/SOURCES/hdparm-9.43-close_fd.patch b/SOURCES/hdparm-9.43-close_fd.patch new file mode 100644 index 0000000..533b18e --- /dev/null +++ b/SOURCES/hdparm-9.43-close_fd.patch @@ -0,0 +1,12 @@ +Index: hdparm-9.43/fallocate.c +=================================================================== +--- hdparm-9.43.orig/fallocate.c ++++ hdparm-9.43/fallocate.c +@@ -41,6 +41,7 @@ int do_fallocate_syscall (const char *pa + exit(0); + } + err = errno; ++ close(fd); + unlink(path); + } + perror(path); diff --git a/SOURCES/hdparm-9.43-ditch_dead_code.patch b/SOURCES/hdparm-9.43-ditch_dead_code.patch new file mode 100644 index 0000000..4f4f177 --- /dev/null +++ b/SOURCES/hdparm-9.43-ditch_dead_code.patch @@ -0,0 +1,47 @@ +Index: hdparm-9.43/sgio.c +=================================================================== +--- hdparm-9.43.orig/sgio.c ++++ hdparm-9.43/sgio.c +@@ -17,6 +17,10 @@ + + #include + ++#ifndef DEMAND_SENSE_DATA ++ #define DEMAND_SENSE_DATA 0 ++#endif ++ + extern int verbose; + extern int prefer_ata12; + +@@ -193,7 +197,7 @@ int sg16 (int fd, int rw, int dma, struc + unsigned char cdb[SG_ATA_16_LEN]; + unsigned char sb[32], *desc; + struct scsi_sg_io_hdr io_hdr; +- int prefer12 = prefer_ata12, demanded_sense = 0; ++ int prefer12 = prefer_ata12; + + if (tf->command == ATA_OP_PIDENTIFY) + prefer12 = 0; +@@ -302,14 +306,16 @@ int sg16 (int fd, int rw, int dma, struc + + desc = sb + 8; + if (io_hdr.driver_status != SG_DRIVER_SENSE) { +- if (sb[0] | sb[1] | sb[2] | sb[3] | sb[4] | sb[5] | sb[6] | sb[7] | sb[8] | sb[9]) { +- static int second_try = 0; +- if (!second_try++) ++ static int second_try = 0; ++ if (!second_try++) { ++ if (sb[0] | sb[1] | sb[2] | sb[3] | sb[4] | sb[5] | sb[6] | sb[7] | sb[8] | sb[9]) { + fprintf(stderr, "SG_IO: questionable sense data, results may be incorrect\n"); +- } else if (demanded_sense) { +- static int second_try = 0; +- if (!second_try++) ++ } ++#if DEMAND_SENSE_DATA ++ else { + fprintf(stderr, "SG_IO: missing sense data, results may be incorrect\n"); ++ } ++#endif + } + } else if (sb[0] != 0x72 || sb[7] < 14 || desc[0] != 0x09 || desc[1] < 0x0c) { + dump_bytes("SG_IO: bad/missing sense data, sb[]", sb, sizeof(sb)); diff --git a/SOURCES/hdparm-9.43-get_geom.patch b/SOURCES/hdparm-9.43-get_geom.patch new file mode 100644 index 0000000..88414fb --- /dev/null +++ b/SOURCES/hdparm-9.43-get_geom.patch @@ -0,0 +1,13 @@ +Index: hdparm-9.43/geom.c +=================================================================== +--- hdparm-9.43.orig/geom.c ++++ hdparm-9.43/geom.c +@@ -201,7 +201,7 @@ int get_dev_geometry (int fd, __u32 *cyl + __u64 hs = (*heads) * (*sects); + __u64 cyl = (*cyls); + __u64 chs = cyl * hs; +- if (chs < (*nsectors)) ++ if (chs < (*nsectors) && hs) + *cyls = (*nsectors) / hs; + } + } diff --git a/SOURCES/hdparm-missing-params.patch b/SOURCES/hdparm-missing-params.patch new file mode 100644 index 0000000..b67b839 --- /dev/null +++ b/SOURCES/hdparm-missing-params.patch @@ -0,0 +1,12 @@ +Index: hdparm-9.43/hdparm.c +=================================================================== +--- hdparm-9.43.orig/hdparm.c ++++ hdparm-9.43/hdparm.c +@@ -1503,6 +1503,7 @@ static void usage_help (int clue, int rc + " --offset use with -t, to begin timings at given offset (in GiB) from start of drive\n" + " --prefer-ata12 Use 12-byte (instead of 16-byte) SAT commands when possible\n" + " --read-sector Read and dump (in hex) a sector directly from the media\n" ++ " --repair-sector Alias for the --write-sector option (VERY DANGEROUS)\n" + " --security-help Display help for ATA security commands\n" + " --trim-sector-ranges Tell SSD firmware to discard unneeded data sectors: lba:count ..\n" + " --trim-sector-ranges-stdin Same as above, but reads lba:count pairs from stdin\n" diff --git a/SOURCES/man-page-update.patch b/SOURCES/man-page-update.patch new file mode 100644 index 0000000..5a31422 --- /dev/null +++ b/SOURCES/man-page-update.patch @@ -0,0 +1,14 @@ +Index: hdparm-9.43/hdparm.8 +=================================================================== +--- hdparm-9.43.orig/hdparm.8 ++++ hdparm-9.43/hdparm.8 +@@ -677,6 +677,9 @@ provides a safe fix for the problem for + Display some basic settings, similar to \-acdgkmur for IDE. + This is also the default behaviour when no options are specified. + .TP ++.I -V ++Display program version and exit immediately. ++.TP + .I --verbose + Display extra diagnostics from some commands. + .TP diff --git a/SPECS/hdparm.spec b/SPECS/hdparm.spec new file mode 100644 index 0000000..36faa98 --- /dev/null +++ b/SPECS/hdparm.spec @@ -0,0 +1,336 @@ +Summary: A utility for displaying and/or setting hard disk parameters +Name: hdparm +Version: 9.43 +Release: 5%{?dist} +License: BSD +Group: Applications/System +URL: http://sourceforge.net/projects/hdparm/ +Source: http://download.sourceforge.net/hdparm/hdparm-%{version}.tar.gz +Patch0: hdparm-missing-params.patch +Patch1: man-page-update.patch +Patch2: %{name}-9.43-ditch_dead_code.patch +Patch3: %{name}-9.43-close_fd.patch +Patch4: %{name}-9.43-get_geom.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +ExcludeArch: s390 s390x + +%description +Hdparm is a useful system utility for setting (E)IDE hard drive +parameters. For example, hdparm can be used to tweak hard drive +performance and to spin down hard drives for power conservation. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + +%build +CFLAGS="$RPM_OPT_FLAGS" make %{?_smp_mflags} STRIP=/bin/true LDFLAGS= + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/sbin +mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man8 +install -c -m 755 hdparm $RPM_BUILD_ROOT/sbin/hdparm +install -c -m 644 hdparm.8 $RPM_BUILD_ROOT/%{_mandir}/man8 + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%doc hdparm.lsm Changelog LICENSE.TXT README.acoustic TODO +/sbin/hdparm +%{_mandir}/man8/hdparm.8* + +%changelog +* Fri Dec 27 2013 Daniel Mach - 9.43-5 +- Mass rebuild 2013-12-27 + +* Wed Aug 07 2013 Michal Minar 9.43-4 +- Fixed division by zero. +- Resolves: #986072 + +* Sun Jul 21 2013 Michal Minar 9.43-3 +- Added patches fixing covscan defects. + +* Fri Apr 19 2013 Michal Minar 9.43-2 +- Fixed inconsistency between man page and program's help. + +* Wed Mar 13 2013 Michal Minar - 9.43-1 +- hdparm-9.43 + +* Thu Feb 14 2013 Fedora Release Engineering - 9.42-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Oct 01 2012 Michal Minar - 9.42-1 +- hdparm-9.42 + +* Thu Jul 19 2012 Fedora Release Engineering - 9.39-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Feb 03 2012 Karsten Hopp 9.39-1 +- hdparm-9.39 + +* Fri Jan 13 2012 Fedora Release Engineering - 9.36-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Feb 09 2011 Fedora Release Engineering - 9.36-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 24 2011 Karsten Hopp 9.36-1 +- update to hdparm-9.36 (#645048) + +* Thu Oct 07 2010 Karsten Hopp 9.33-1 +- update to hdparm-9.33 (#592896) + +* Fri Dec 11 2009 Karsten Hopp 9.27-1 +- update to 9.27 +- enhance security-erase timeout to 12h (#536731) + +* Thu Aug 20 2009 Ville Skyttä - 9.16-3 +- Let rpmbuild strip the executable (#513025). + +* Fri Jul 24 2009 Fedora Release Engineering - 9.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jul 17 2009 Karsten Hopp 9.16-1 +- update to 9.16, fixes disk spindowns + +* Wed Mar 04 2009 Karsten Hopp 9.12-1 +- update to 9.12 to fix #488560 + +* Tue Feb 24 2009 Fedora Release Engineering - 9.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Jan 14 2009 Karsten Hopp 9.8-1 +- update + +* Wed Mar 05 2008 Karsten Hopp 8.6-1 +- update to 8.6 +- fix source URL + +* Mon Feb 25 2008 Karsten Hopp 8.5-1 +- version 8.5, fixes u8->u16 bug in security commands + +* Mon Feb 25 2008 Karsten Hopp 8.4-2 +- fix debuginfo package (#434644) + +* Wed Feb 20 2008 Karsten Hopp 8.4-1 +- version 8.4 + +* Tue Feb 19 2008 Karsten Hopp 8.1-3 +- upload 8.1 sources and rebuild + +* Tue Feb 19 2008 Fedora Release Engineering - 8.1-2 +- Autorebuild for GCC 4.3 + +* Mon Feb 18 2008 Karsten Hopp 8.1-1 +- update to 8.1 + +* Fri Aug 24 2007 Karsten Hopp 7.7-1 +- update to 7.7 + +* Tue Jul 10 2007 Karsten Hopp 7.6-1 +- update to version 7.6 + +* Fri Feb 09 2007 Karsten Hopp 6.9-3 +- more review cleanups (#225882) + +* Mon Feb 05 2007 Karsten Hopp 6.9-2 +- clean up spec file for merge review (#225882) + +* Thu Jan 18 2007 Karsten Hopp 6.9-1 +- update to 6.9 + +* Mon Jul 17 2006 Karsten Hopp 6.6-2 +- test builds on ia64, ppc, ppc64 + +* Wed Jul 12 2006 Jesse Keating - 6.6-1.1 +- rebuild + +* Mon May 22 2006 Karsten Hopp 6.3-3 +- remove obsolute include patch +- disable idestruct patch, rebuild + +* Fri Feb 10 2006 Jesse Keating - 6.3-2.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 6.3-2.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Dec 20 2005 Karsten Hopp 6.3-2 +- use ExcludeArch, this allows building on archs we don't + ship such as Alpha (#175919) + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Wed Nov 30 2005 Karsten Hopp 6.3-1 +- fix package URL + +* Tue Oct 25 2005 Karsten Hopp 6.3-1 +- update to hdparm-6.3 + +* Wed Jun 08 2005 Karsten Hopp 6.1-1 +- update to 6.1 (BLKGETSIZE fixes) +- work around hdparm's usage of kernel headers, assume + that we run it on little-endian machines only + +* Wed May 18 2005 Karsten Hopp 5.9-3 +- remove /etc/sysconfig/harddisks (#157673) + +* Tue May 10 2005 Karsten Hopp 5.9-2 +- enable debuginfo + +* Wed Mar 02 2005 Karsten Hopp 5.9-1 +- update to 5.9 +- build with gcc-4 + +* Mon Jan 03 2005 Karsten Hopp 5.8-2 +- add --help option (#143916) + +* Fri Nov 26 2004 Karsten Hopp 5.8-1 +- update + +* Tue Sep 21 2004 Than Ngo 5.7-2 +- rebuilt + +* Mon Sep 06 2004 Karsten Hopp 5.7-1 +- update to latest stable version + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Thu Feb 19 2004 Karsten Hopp 5.5-1 +- update to latest stable version +- rename variable to avoid name clash with readahead function + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jun 04 2003 Karsten Hopp 5.4-2 +- rebuild + +* Wed Jun 04 2003 Karsten Hopp 5.4-1 +- update +- #92057 + +* Wed Apr 23 2003 Karsten Hopp 5.3-2 +- rebuild + +* Wed Apr 23 2003 Karsten Hopp 5.3-1 +- update to 5.3 +- add comment to /etc/sysconfig/harddisks + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Thu Dec 12 2002 Tim Powers 5.2-3 +- rebuild on all arches + +* Tue Nov 19 2002 Tim Powers +- rebuild on all arches + +* Wed Jun 26 2002 Karsten Hopp +- update to 5.2 with the following fixes: + - v5.2 compile fixes for 2.5.xx + - v5.1 fixed segfault in "-i" on older drives + - v5.0 lots of updates and new features + - v4.9 fixed compile error with 2.5.xx kernels + - v4.8 changed -Q to allow specifying queue depth + - v4.7 added -z, -Q, -M flags; expanded parm range for -p + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Fri Feb 22 2002 Karsten Hopp +- bump version for 8.0 + +* Fri Feb 22 2002 Karsten Hopp +- rebuild in new environment + +* Wed Jan 23 2002 Karsten Hopp (4.6-1) +- Update to 4.6 + +* Mon Oct 01 2001 Karsten Hopp +- fix name of doc file (#54137) + +* Fri Jul 20 2001 Florian La Roche +- exclude s390,s390x + +* Mon Jun 25 2001 Karsten Hopp +- update to version 4.1 +- update URL + +* Wed Jul 19 2000 Bernhard Rosenkränzer +- disable readahead (#14268) +- add comment in /etc/sysconfig/harddisks about possible extra parameters + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Wed Jul 12 2000 Trond Eivind Glomsrød +- disable 32 bit interfacing (#13730) + +* Tue Jun 27 2000 Trond Eivind Glomsrød +- use %%{_tmppath} +- add /etc/sysconfig/harddisks, a new file for hardisk + optimization parameters + +* Mon Jun 18 2000 Bernhard Rosenkränzer +- FHSify + +* Sun Apr 9 2000 Bernhard Rosenkränzer +- Fix compilation with kernel 2.3.* + +* Thu Feb 17 2000 Bernhard Rosenkränzer +- 3.9 +- handle RPM_OPT_FLAGS + +* Thu Feb 17 2000 Bernhard Rosenkränzer +- Use O_NONBLOCK when opening devices so we can manipulate CD-ROM drives + with no media inserted, even when running a current kernel (Bug #6457) + +* Sat Feb 5 2000 Bill Nottingham +- build as non-root user (#6458) + +* Fri Feb 4 2000 Bernhard Rosenkränzer +- deal with RPM compressing man pages + +* Fri Nov 19 1999 Bernhard Rosenkraenzer +- 3.6 + +* Thu Aug 12 1999 Cristian Gafton +- version 3.5 + +* Wed Mar 24 1999 Cristian Gafton +- added patches from UP + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 4) + +* Tue Dec 29 1998 Cristian Gafton +- build for 6.0 + +* Fri Apr 24 1998 Prospector System +- translations modified for de, fr, tr + +* Wed Apr 08 1998 Erik Troan +- updated to 3.3 +- build rooted + +* Fri Oct 31 1997 Donnie Barnes +- fixed spelling error in summary + +* Mon Jun 02 1997 Erik Troan +- built against glibc +