Date: Sunday, September 30, 2012 @ 15:26:10
  Author: tpowa
Revision: 167301

archrelease: copy trunk to testing-i686, testing-x86_64

Added:
  hdparm/repos/testing-i686/
  hdparm/repos/testing-i686/PKGBUILD
    (from rev 167300, hdparm/trunk/PKGBUILD)
  hdparm/repos/testing-i686/wiper.sh.2_6.max-ranges.patch
    (from rev 167300, hdparm/trunk/wiper.sh.2_6.max-ranges.patch)
  hdparm/repos/testing-x86_64/
  hdparm/repos/testing-x86_64/PKGBUILD
    (from rev 167300, hdparm/trunk/PKGBUILD)
  hdparm/repos/testing-x86_64/wiper.sh.2_6.max-ranges.patch
    (from rev 167300, hdparm/trunk/wiper.sh.2_6.max-ranges.patch)

----------------------------------------------+
 testing-i686/PKGBUILD                        |   42 ++++++++++++
 testing-i686/wiper.sh.2_6.max-ranges.patch   |   84 +++++++++++++++++++++++++
 testing-x86_64/PKGBUILD                      |   42 ++++++++++++
 testing-x86_64/wiper.sh.2_6.max-ranges.patch |   84 +++++++++++++++++++++++++
 4 files changed, 252 insertions(+)

Copied: hdparm/repos/testing-i686/PKGBUILD (from rev 167300, 
hdparm/trunk/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD                               (rev 0)
+++ testing-i686/PKGBUILD       2012-09-30 19:26:10 UTC (rev 167301)
@@ -0,0 +1,42 @@
+# $Id$
+# Maintainer: Paul Mattal <p...@archlinux.org>
+
+pkgname=hdparm
+pkgver=9.42
+pkgrel=1
+pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
+arch=(i686 x86_64)
+depends=('glibc')
+optdepends=('sh: required by idectl and ultrabayd')
+source=(http://downloads.sourceforge.net/sourceforge/hdparm/${pkgname}-${pkgver}.tar.gz
+        wiper.sh.2_6.max-ranges.patch)
+license=('BSD')
+url="http://sourceforge.net/projects/hdparm/";
+optdepends=('bash: for wiper.sh script')
+options=('emptydirs')
+md5sums=('0af5a38b212fe08f5afbe5e37f34b40b'
+         '74e368f384166a7710b447573cda120a')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  # Fix Range input/output error when wiping Intel G2 and OCZ drives
+  patch -Np1 -i $srcdir/wiper.sh.2_6.max-ranges.patch
+  
+  # build
+  make
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  # install
+  mkdir -p ${pkgdir}/{usr,sbin}
+  make DESTDIR=${pkgdir} install
+  install -m755 contrib/idectl ${pkgdir}/sbin
+  install -m755 contrib/ultrabayd ${pkgdir}/sbin
+
+  install -D -m 0644 $srcdir/$pkgname-$pkgver/wiper/README.txt 
$pkgdir/usr/share/doc/wiper/README.txt
+  install -D -m 0755 $srcdir/$pkgname-$pkgver/wiper/wiper.sh 
$pkgdir/usr/sbin/wiper.sh
+
+  #install license file
+  install -D -m 644 LICENSE.TXT $pkgdir/usr/share/licenses/hdparm/LICENSE.TXT
+}

Copied: hdparm/repos/testing-i686/wiper.sh.2_6.max-ranges.patch (from rev 
167300, hdparm/trunk/wiper.sh.2_6.max-ranges.patch)
===================================================================
--- testing-i686/wiper.sh.2_6.max-ranges.patch                          (rev 0)
+++ testing-i686/wiper.sh.2_6.max-ranges.patch  2012-09-30 19:26:10 UTC (rev 
167301)
@@ -0,0 +1,84 @@
+--- hdparm-9.28/wiper/wiper.sh.orig    2010-03-09 06:17:37.000000000 -0800
+--- hdparm-9.28/wiper/wiper.sh 2010-05-15 03:08:02.182856971 -0700
+@@ -29,7 +29,7 @@
+ function usage_error(){
+       echo >&2
+       echo "Linux tune-up (TRIM) utility for SATA SSDs"
+-      echo "Usage:  $0 [--verbose] [--commit] <mount_point|block_device>" >&2
++      echo "Usage:  $0 [--max-ranges <num>] [--verbose] [--commit] 
<mount_point|block_device>" >&2
+       echo "   Eg:  $0 /dev/sda1" >&2
+       echo >&2
+       exit 1
+@@ -44,6 +44,7 @@
+ 
+ export verbose=0
+ commit=""
++max_ranges=-1
+ destroy_me=""
+ argc=$#
+ arg=""
+@@ -51,6 +52,10 @@
+               commit=yes
+       elif [ "$1" = "--verbose" ]; then
+               verbose=$((verbose + 1))
++      elif [ "$1" = "--max-ranges" -a $argc -gt 1 ]; then
++              max_ranges=$2
++              argc=$((argc - 1))
++              shift
+       elif [ "$1" = "" ]; then
+               usage_error
+       else
+@@ -499,6 +550,18 @@
+       fi
+ fi
+ 
++## Different SSD's have a different maximum number of ranges they'll accept
++## in a single TRIM command.
++if [ $max_ranges -le 0 ] ; then
++      model=`$HDPARM -I $rawdev | $GAWK '/Model Number/ { print $NF }'`
++      case "$model" in
++              SSDSA[12]*)  max_ranges=512 ;;  # Intel X18-M/X25-M
++              OCZ-VERTEX2) max_ranges=64 ;;   # OCZ Vertex2
++              *)           max_ranges=65535
++      esac
++fi
++[ $verbose -gt 0 ] && echo "max-ranges = $max_ranges"
++
+ ## All ready.  Now let the user know exactly what we intend to do:
+ ##
+ mountstatus="$fstype non-mounted"
+@@ -608,7 +671,7 @@
+               nsectors += count;
+               while (count > 0) {
+                       this_count  = (count > 65535) ? 65535 : count
+-                      printf "%u:%u ", lba, this_count
++                      printf "%u:%u \n", lba, this_count
+                       if (verbose > 1)
+                               printf "%u:%u ", lba, this_count > "/dev/stderr"
+                       lba        += this_count
+@@ -695,6 +758,22 @@
+       -v verbose="$verbose"                   \
+       -v xfs_blksects="$xfs_blksects"         \
+       -v xfs_agoffsets="$xfs_agoffsets"       \
+-      "$GAWKPROG" | $TRIM
++      "$GAWKPROG" | (
++              i=0
++              while read range ; do
++                      ranges=$ranges" "$range
++                      ((i++))
++                      if [ $i -ge $max_ranges ] ; then
++                              [ $verbose -gt 0 ] && echo -e "Trim 
ranges:"$ranges"\n"         
++                              echo $ranges | $TRIM
++                              ranges=""
++                              i=0
++                      fi
++              done
++              if [ $i -gt 0 ] ; then
++                      [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++                      echo $ranges | $TRIM
++              fi
++      )
+ 
+ do_cleanup $?
+
+                

Copied: hdparm/repos/testing-x86_64/PKGBUILD (from rev 167300, 
hdparm/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD                             (rev 0)
+++ testing-x86_64/PKGBUILD     2012-09-30 19:26:10 UTC (rev 167301)
@@ -0,0 +1,42 @@
+# $Id$
+# Maintainer: Paul Mattal <p...@archlinux.org>
+
+pkgname=hdparm
+pkgver=9.42
+pkgrel=1
+pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
+arch=(i686 x86_64)
+depends=('glibc')
+optdepends=('sh: required by idectl and ultrabayd')
+source=(http://downloads.sourceforge.net/sourceforge/hdparm/${pkgname}-${pkgver}.tar.gz
+        wiper.sh.2_6.max-ranges.patch)
+license=('BSD')
+url="http://sourceforge.net/projects/hdparm/";
+optdepends=('bash: for wiper.sh script')
+options=('emptydirs')
+md5sums=('0af5a38b212fe08f5afbe5e37f34b40b'
+         '74e368f384166a7710b447573cda120a')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  # Fix Range input/output error when wiping Intel G2 and OCZ drives
+  patch -Np1 -i $srcdir/wiper.sh.2_6.max-ranges.patch
+  
+  # build
+  make
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  # install
+  mkdir -p ${pkgdir}/{usr,sbin}
+  make DESTDIR=${pkgdir} install
+  install -m755 contrib/idectl ${pkgdir}/sbin
+  install -m755 contrib/ultrabayd ${pkgdir}/sbin
+
+  install -D -m 0644 $srcdir/$pkgname-$pkgver/wiper/README.txt 
$pkgdir/usr/share/doc/wiper/README.txt
+  install -D -m 0755 $srcdir/$pkgname-$pkgver/wiper/wiper.sh 
$pkgdir/usr/sbin/wiper.sh
+
+  #install license file
+  install -D -m 644 LICENSE.TXT $pkgdir/usr/share/licenses/hdparm/LICENSE.TXT
+}

Copied: hdparm/repos/testing-x86_64/wiper.sh.2_6.max-ranges.patch (from rev 
167300, hdparm/trunk/wiper.sh.2_6.max-ranges.patch)
===================================================================
--- testing-x86_64/wiper.sh.2_6.max-ranges.patch                                
(rev 0)
+++ testing-x86_64/wiper.sh.2_6.max-ranges.patch        2012-09-30 19:26:10 UTC 
(rev 167301)
@@ -0,0 +1,84 @@
+--- hdparm-9.28/wiper/wiper.sh.orig    2010-03-09 06:17:37.000000000 -0800
+--- hdparm-9.28/wiper/wiper.sh 2010-05-15 03:08:02.182856971 -0700
+@@ -29,7 +29,7 @@
+ function usage_error(){
+       echo >&2
+       echo "Linux tune-up (TRIM) utility for SATA SSDs"
+-      echo "Usage:  $0 [--verbose] [--commit] <mount_point|block_device>" >&2
++      echo "Usage:  $0 [--max-ranges <num>] [--verbose] [--commit] 
<mount_point|block_device>" >&2
+       echo "   Eg:  $0 /dev/sda1" >&2
+       echo >&2
+       exit 1
+@@ -44,6 +44,7 @@
+ 
+ export verbose=0
+ commit=""
++max_ranges=-1
+ destroy_me=""
+ argc=$#
+ arg=""
+@@ -51,6 +52,10 @@
+               commit=yes
+       elif [ "$1" = "--verbose" ]; then
+               verbose=$((verbose + 1))
++      elif [ "$1" = "--max-ranges" -a $argc -gt 1 ]; then
++              max_ranges=$2
++              argc=$((argc - 1))
++              shift
+       elif [ "$1" = "" ]; then
+               usage_error
+       else
+@@ -499,6 +550,18 @@
+       fi
+ fi
+ 
++## Different SSD's have a different maximum number of ranges they'll accept
++## in a single TRIM command.
++if [ $max_ranges -le 0 ] ; then
++      model=`$HDPARM -I $rawdev | $GAWK '/Model Number/ { print $NF }'`
++      case "$model" in
++              SSDSA[12]*)  max_ranges=512 ;;  # Intel X18-M/X25-M
++              OCZ-VERTEX2) max_ranges=64 ;;   # OCZ Vertex2
++              *)           max_ranges=65535
++      esac
++fi
++[ $verbose -gt 0 ] && echo "max-ranges = $max_ranges"
++
+ ## All ready.  Now let the user know exactly what we intend to do:
+ ##
+ mountstatus="$fstype non-mounted"
+@@ -608,7 +671,7 @@
+               nsectors += count;
+               while (count > 0) {
+                       this_count  = (count > 65535) ? 65535 : count
+-                      printf "%u:%u ", lba, this_count
++                      printf "%u:%u \n", lba, this_count
+                       if (verbose > 1)
+                               printf "%u:%u ", lba, this_count > "/dev/stderr"
+                       lba        += this_count
+@@ -695,6 +758,22 @@
+       -v verbose="$verbose"                   \
+       -v xfs_blksects="$xfs_blksects"         \
+       -v xfs_agoffsets="$xfs_agoffsets"       \
+-      "$GAWKPROG" | $TRIM
++      "$GAWKPROG" | (
++              i=0
++              while read range ; do
++                      ranges=$ranges" "$range
++                      ((i++))
++                      if [ $i -ge $max_ranges ] ; then
++                              [ $verbose -gt 0 ] && echo -e "Trim 
ranges:"$ranges"\n"         
++                              echo $ranges | $TRIM
++                              ranges=""
++                              i=0
++                      fi
++              done
++              if [ $i -gt 0 ] ; then
++                      [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++                      echo $ranges | $TRIM
++              fi
++      )
+ 
+ do_cleanup $?
+
+                

Reply via email to