ports/139203: sysutils/freebsd-snapshot more careful patch not depending of LANG/LC_ALL
Fedor Dikarev
fedor.dikarev at gmail.com
Mon Sep 28 08:20:02 UTC 2009
>Number: 139203
>Category: ports
>Synopsis: sysutils/freebsd-snapshot more careful patch not depending of LANG/LC_ALL
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Sep 28 08:20:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Fedor Dikarev
>Release: 7.2
>Organization:
Rambler
>Environment:
FreeBSD net.park.rambler.ru 7.2-STABLE FreeBSD 7.2-STABLE #1: Tue Jun 2 10:49:29 MSD 2009 root at net.park.rambler.ru:/usr/obj/usr/src/sys/MNGMT amd64
>Description:
This is another way to solve bug ports/137105 (http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/137105)
But it's not only fix those bug, it make code more neatly, and allow to use different languages depending of user sets LANG/LC_ALL in the future.
So with current version snapshot program output is always as LC_ALL=C. With my version, output depends on user settings, so it's more flexible.
>How-To-Repeat:
Problem in original "snapshot":
LANG="ru_RU.KOI8-R" ~/snapshot.orig.orig -v list
Filesystem Type User User% Snap Snap% Snapshot Name Snapshot Time
/ ufs 661MB 66,9% 5MB 0,6% test.0 2009-07-01T14:02
/home ufs 5GB 68,2% 1GB 19,8% test.1 2009-07-01T14:03
/home ufs 5GB 68,2% 9MB 0,1% test.0 2009-07-01T14:10
[: 88,6: bad number
[: 88,6: bad number
/zraid/rrd zfs 4GB 0,2% 88,6KB 0,0% test.1 2009-07-01T13:19
[: 88,6: bad number
[: 88,6: bad number
/zraid/rrd zfs 4GB 0,2% 88,6KB 0,0% test.0 2009-07-01T13:20
/zraid/svn zfs 35MB 0,0% 0KB 0,0% dump1 2009-06-09T10:07
/zraid/svn zfs 35MB 0,0% 0KB 0,0% dump2 2009-06-09T10:07
>Fix:
Using option "-p", when running "zfs get" commands
Patch attached with submission follows:
--- snapshot 2009-09-28 11:58:03.000000000 +0400
+++ snapshot.orig 2009-09-28 11:59:40.000000000 +0400
@@ -30,6 +30,8 @@
# make sure system tools are used first
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:$PATH"
+LC_ALL=C
+LANG=C
# option defaults
verbose=no
@@ -165,12 +167,19 @@
# determine sizes
fs_size=`df -k $fs_dir | tail -n1 | awk '{ print $2; }'`
used_size=`df -k $fs_dir | tail -n1 | awk '{ print $3; }'`
- snap_size=`zfs get -H -p -o value used $snap | sed -e 's;\.[0-9][0-9]*;;'`
+ snap_size=`zfs get -H -o value used $snap | sed -e 's;\.[0-9][0-9]*;;'`
+ case "$snap_size" in
+ *B ) snap_size=`echo "$snap_size" | sed -e 's;B$;;'`; snap_size=$(($snap_size / 1024)) ;;
+ *K ) snap_size=`echo "$snap_size" | sed -e 's;K$;;'` ;;
+ *M ) snap_size=`echo "$snap_size" | sed -e 's;M$;;'`; snap_size=$(($snap_size * 1024)) ;;
+ *G ) snap_size=`echo "$snap_size" | sed -e 's;G$;;'`; snap_size=$(($snap_size * 1024 * 1024)) ;;
+ *T ) snap_size=`echo "$snap_size" | sed -e 's;T$;;'`; snap_size=$(($snap_size * 1024 * 1024 * 1024)) ;;
+ esac
# determine snapshot creation time
if [ ".$verbose" = .yes ]; then
- snap_time=`zfs get -H -p -o value creation $snap`
- snap_time=`date -r "$snap_time" "+%Y-%m-%dT%H:%M"`
+ snap_time=`zfs get -H -o value creation $snap`
+ snap_time=`date -j -f "%a %b %d %H:%M %Y" "$snap_time" "+%Y-%m-%dT%H:%M"`
fi
# calculate percentages
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list