aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andree <mandree@FreeBSD.org>2014-05-22 04:46:37 +0000
committerMatthias Andree <mandree@FreeBSD.org>2014-05-22 04:46:37 +0000
commitec88567c1f1abeb0968958b09ac3a07965becaf7 (patch)
tree55658f82776a80bebc2183a7d461e96db1b62487
parentb9dc272b99dc117e1532ae616beeabc2ca0b1f72 (diff)
downloadports-ec88567c1f1abeb0968958b09ac3a07965becaf7.tar.gz
ports-ec88567c1f1abeb0968958b09ac3a07965becaf7.zip
Notes
-rw-r--r--sysutils/e2fsprogs/Makefile8
-rw-r--r--sysutils/e2fsprogs/distinfo4
-rw-r--r--sysutils/e2fsprogs/files/patch-35089768
3 files changed, 74 insertions, 6 deletions
diff --git a/sysutils/e2fsprogs/Makefile b/sysutils/e2fsprogs/Makefile
index 5f3efa2bf2d4..54efbdf84daf 100644
--- a/sysutils/e2fsprogs/Makefile
+++ b/sysutils/e2fsprogs/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= e2fsprogs
-PORTVERSION= 1.42.9
+PORTVERSION= 1.42.10
PORTREVISION?= 0
CATEGORIES?= sysutils
MASTER_SITES= KERNEL_ORG/linux/kernel/people/tytso/${PORTNAME}/v${PORTVERSION}
@@ -13,12 +13,12 @@ COMMENT?= Utilities & library to manipulate ext2/3/4 filesystems
LICENSE= GPLv2
PATCH_STRIP= -p1
-USES= gmake pkgconfig
+USES= gmake pkgconfig tar:xz
USE_CSTD= gnu99
USE_LDCONFIG= yes
-USE_XZ= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--disable-fsck --disable-e2initrd-helper \
+ --enable-quota \
--with-root-prefix='${PREFIX}'
CPPFLAGS+= -I${WRKSRC}/lib -I${LOCALBASE}/include # -D_EXT2_USE_C_VERSIONS
MAKE_ARGS+= LDFLAGS='${LDFLAGS} -L${LOCALBASE}/lib'
@@ -76,7 +76,7 @@ post-patch::
# disable f_mmp_garbage, fails on FreeBSD, and the resize*big_expand tests,
# which are too unwieldy to run automatically (need too much free space).
# f_extent_oobounds fails in Tinderbox and is fine outside, reason unclear.
-.for i in f_mmp_garbage f_extent_oobounds r_64bit_big_expand r_bigalloc_big_expand r_ext4_big_expand m_bigjournal
+.for i in f_mmp_garbage m_bigjournal r_64bit_big_expand r_bigalloc_big_expand r_ext4_big_expand
@${MV} ${WRKSRC}/tests/${i} ${WRKSRC}/tests/disabled_test-${i}
.endfor
diff --git a/sysutils/e2fsprogs/distinfo b/sysutils/e2fsprogs/distinfo
index b6d7d2eefeca..68d2bcd84260 100644
--- a/sysutils/e2fsprogs/distinfo
+++ b/sysutils/e2fsprogs/distinfo
@@ -1,2 +1,2 @@
-SHA256 (e2fsprogs-1.42.9.tar.xz) = b63e95f71209c3d8b07e320a4c602eedb9eaf5b1f565807ad92f519299cd8868
-SIZE (e2fsprogs-1.42.9.tar.xz) = 4656468
+SHA256 (e2fsprogs-1.42.10.tar.xz) = 1f3324e80b042e8b9c2791c5b5de57afa205989b170e5800764ea60cb3961599
+SIZE (e2fsprogs-1.42.10.tar.xz) = 4676804
diff --git a/sysutils/e2fsprogs/files/patch-350897 b/sysutils/e2fsprogs/files/patch-350897
new file mode 100644
index 000000000000..ed221dcb95f4
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-350897
@@ -0,0 +1,68 @@
+http://patchwork.ozlabs.org/patch/350897/
+debugfs: fix string_to_time for MacOS strptime()
+
+The strptime() function does not update fields in struct tm that are
+not specified in the input format. The glibc implementation sets the
+tm_yday field (%j) when any of the year (%Y), month (%m), or day (%d)
+fields are changed, but the MacOS strptime() does not set tm_yday in
+this case. This caused string_to_time() to calculate the wrong Unix
+epoch on MacOS. If tm_yday is unset, compute it in string_to_time().
+
+Signed-off-by: Andreas Dilger <adilger@dilger.ca>
+---
+ debugfs/util.c | 14 ++++++++++++++
+ tests/f_dup_resize/script | 2 +-
+ tests/f_uninit_last_uninit/script | 2 +-
+ 3 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/debugfs/util.c b/debugfs/util.c
+index 9ddfe0b..20c6c61 100644
+--- a/debugfs/util.c
++++ b/debugfs/util.c
+@@ -245,6 +245,20 @@ time_t string_to_time(const char *arg)
+ ts.tm_mday = 0;
+ #endif
+ ts.tm_isdst = -1;
++ /* strptime() may only update the specified fields, which does not
++ * necessarily include ts.tm_yday (%j). Calculate this if unset:
++ *
++ * Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
++ * 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
++ *
++ * Start with 31 days per month. Even months have only 30 days, but
++ * reverse in August, subtract one day for those months. February has
++ * only 28 days, not 30, subtract two days. Add day of month, minus
++ * one, since day is not finished yet. Leap years handled afterward. */
++ if (ts.tm_yday == 0)
++ ts.tm_yday = (ts.tm_mon * 31) -
++ ((ts.tm_mon - (ts.tm_mon > 7)) / 2) -
++ 2 * (ts.tm_mon > 1) + ts.tm_mday - 1;
+ ret = ts.tm_sec + ts.tm_min*60 + ts.tm_hour*3600 + ts.tm_yday*86400 +
+ (ts.tm_year-70)*31536000 + ((ts.tm_year-69)/4)*86400 -
+ ((ts.tm_year-1)/100)*86400 + ((ts.tm_year+299)/400)*86400;
+diff --git a/tests/f_dup_resize/script b/tests/f_dup_resize/script
+index 659c92e..19fa120 100644
+--- a/tests/f_dup_resize/script
++++ b/tests/f_dup_resize/script
+@@ -12,7 +12,7 @@ freeb 4 4
+ freeb 8195 4
+ write $TEST_DATA debugfs
+ set_current_time 20050411000000
+-set_inode_field debugfs mtime 2005041100000000
++set_inode_field debugfs mtime 20050411000000
+ q
+ EOF
+
+diff --git a/tests/f_uninit_last_uninit/script b/tests/f_uninit_last_uninit/script
+index 2fe4f3a..376c978 100644
+--- a/tests/f_uninit_last_uninit/script
++++ b/tests/f_uninit_last_uninit/script
+@@ -5,7 +5,7 @@ SKIP_GUNZIP="true"
+ touch $TMPFILE
+ $MKE2FS -N 32 -F -o Linux -O uninit_bg -b 1024 $TMPFILE 10000 > /dev/null 2>&1
+ $DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
+-set_current_time 200704102100
++set_current_time 20070410210000
+ set_super_value lastcheck 0
+ set_super_value hash_seed null
+ set_super_value mkfs_time 0