aboutsummaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2006-06-12 12:13:09 +0000
committerPav Lucistnik <pav@FreeBSD.org>2006-06-12 12:13:09 +0000
commita000f4798be26f7222a8832d4a5005d4a4b805b8 (patch)
tree790a159adaefcbc99c42f1397ec73e0d3e3250e3 /sysutils
parent8c884278208cd52657dc8f56c1c2e4fd8278c88e (diff)
downloadports-a000f4798be26f7222a8832d4a5005d4a4b805b8.tar.gz
ports-a000f4798be26f7222a8832d4a5005d4a4b805b8.zip
- Update to 1.39
PR: ports/98847 Submitted by: Matthias Andree <matthias.andree@gmx.de> (maintainer)
Notes
Notes: svn path=/head/; revision=165182
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/e2fsprogs/Makefile27
-rw-r--r--sysutils/e2fsprogs/distinfo6
-rw-r--r--sysutils/e2fsprogs/files/patch-.conf-dir36
-rw-r--r--sysutils/e2fsprogs/files/patch-DIOCGMEDIASIZE16
-rw-r--r--sysutils/e2fsprogs/files/patch-configure11
-rw-r--r--sysutils/e2fsprogs/files/patch-e2fsck-Makefile.in11
-rw-r--r--sysutils/e2fsprogs/files/patch-lib_blkid_getsize.c32
-rw-r--r--sysutils/e2fsprogs/files/patch-lib_blkid_probe.c33
-rw-r--r--sysutils/e2fsprogs/files/patch-lib_blkid_probe.h12
-rw-r--r--sysutils/e2fsprogs/files/patch-lib_ext2fs_tst_bitops.c12
-rw-r--r--sysutils/e2fsprogs/files/patch-misc_Makefile.in16
-rw-r--r--sysutils/e2fsprogs/files/patch-type-ntohl30
-rw-r--r--sysutils/e2fsprogs/files/patch-types156
-rw-r--r--sysutils/e2fsprogs/files/pkg-message.in14
-rw-r--r--sysutils/e2fsprogs/pkg-deinstall9
-rw-r--r--sysutils/e2fsprogs/pkg-install79
-rw-r--r--sysutils/e2fsprogs/pkg-message3
-rw-r--r--sysutils/e2fsprogs/pkg-plist4
18 files changed, 463 insertions, 44 deletions
diff --git a/sysutils/e2fsprogs/Makefile b/sysutils/e2fsprogs/Makefile
index 5c98a97fa282..d845511de283 100644
--- a/sysutils/e2fsprogs/Makefile
+++ b/sysutils/e2fsprogs/Makefile
@@ -6,8 +6,8 @@
#
PORTNAME= e2fsprogs
-PORTVERSION= 1.38
-PORTREVISION?= 2
+PORTVERSION= 1.39
+PORTREVISION?= 0
CATEGORIES?= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
MASTER_SITE_SUBDIR= ${PORTNAME}
@@ -21,8 +21,10 @@ USE_GETTEXT= yes
PATCH_STRIP= -p1
GNU_CONFIGURE= yes
-CONFIGURE_ARGS?= --disable-fsck --disable-e2initrd-helper "--with-ldopts=-L${LOCALBASE}/lib"
-CONFIGURE_ENV+= CPPFLAGS='-I${WRKSRC}/lib -I${LOCALBASE}/include'
+CONFIGURE_ARGS?= --disable-fsck --disable-e2initrd-helper '--with-ldopts=-L${LOCALBASE}/lib' --with-cc='${CC}' --with-linker='${LD}' --with-ccopts='${CFLAGS}' --with-root-prefix='${PREFIX}'
+# for unknown reasons, the assembly bitops cause SIGSEGV.
+# _EXT2_USE_C_VERSIONS_ uses C bitops, these appear to work fine.
+CONFIGURE_ENV+= CPPFLAGS='${CPPFLAGS} -I${WRKSRC}/lib -I${LOCALBASE}/include -D_EXT2_USE_C_VERSIONS_'
.if defined(WITHOUT_NLS)
CONFIGURE_ARGS+= --disable-nls
PLIST_SUB= NLS="@comment "
@@ -31,17 +33,17 @@ MAKE_ARGS+= STATIC_LIBS="../lib/libext2fs.a ../lib/libcom_err.a ../lib/libblkid.
PLIST_SUB= NLS=""
.endif
INSTALLS_SHLIB= yes
+PKGDEINSTALL= ${PKGINSTALL}
.if !defined(MASTERDIR)
-SUB_FILES= pkg-message
-
MAN1= chattr.1 lsattr.1
+MAN5= e2fsck.conf.5 mke2fs.conf.5
MAN8= badblocks.8 debugfs.8 dumpe2fs.8 e2fsck.8 e2image.8 e2label.8 \
mke2fs.8 mklost+found.8 resize2fs.8 tune2fs.8 \
fsck.ext2.8 fsck.ext3.8 mkfs.ext2.8 mkfs.ext3.8 \
findfs.8 blkid.8 logsave.8
-pre-everything::
+pre-build:
@${ECHO_CMD} "-------------------------------------------------------------"
.if defined(WITHOUT_NLS)
@${ECHO_CMD} "National language support disabled, -DWITHOUT_NLS in effect. "
@@ -73,12 +75,23 @@ post-build:
.endif
${CC} ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} -s -static ${LIBS} -o ${WRKSRC}/fsck_ext2fs ${FILESDIR}/fsck_ext2fs.c
cd ${WRKSRC}/tests && ${MAKE} check
+# While the ${MAKE} check can take a minute on an end user's system, the
+# correctness of tools such as e2fsck is critical to the health of the
+# file systems. The upstream is not using any *BSD as his development
+# system, and therefore let's exercise due diligence in running the self-
+# test on each and every system and not just package building hosts.
+# There have been subtle failures induced by Linux-isms in the past,
+# and every release I've packaged introduced some minor regressions.
+# -- Matthias Andree, package maintainer, 2006-06-12
post-install:
${RM} ${PREFIX}/sbin/filefrag
${RM} ${PREFIX}/man/man8/filefrag.8
${RM} ${PREFIX}/info/libext2fs.info.gz
${INSTALL_PROGRAM} ${WRKSRC}/fsck_ext2fs ${PREFIX}/sbin/
+ [ -f ${PREFIX}/etc/mke2fs.conf ] || \
+ ${CP} -p ${PREFIX}/etc/mke2fs.conf.dist ${PREFIX}/etc/mke2fs.conf
+ @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
@${ECHO_MSG}
@${CAT} ${PKGMESSAGE}
@${ECHO_MSG}
diff --git a/sysutils/e2fsprogs/distinfo b/sysutils/e2fsprogs/distinfo
index ecf7173f8149..502ae8451f50 100644
--- a/sysutils/e2fsprogs/distinfo
+++ b/sysutils/e2fsprogs/distinfo
@@ -1,3 +1,3 @@
-MD5 (e2fsprogs-1.38.tar.gz) = d774d4412bfb80d12cf3a4fdfd59de5a
-SHA256 (e2fsprogs-1.38.tar.gz) = c4e482687d0cff240d02a70fcf423cc14296b6a7869cd8dd42d5404d098e0bb7
-SIZE (e2fsprogs-1.38.tar.gz) = 3621193
+MD5 (e2fsprogs-1.39.tar.gz) = 06f7806782e357797fad1d34b7ced0c6
+SHA256 (e2fsprogs-1.39.tar.gz) = dc2033447e69a1612881151f6f163e8a3b80e51d16f5e8b3576f3f8ccb325ea3
+SIZE (e2fsprogs-1.39.tar.gz) = 3695111
diff --git a/sysutils/e2fsprogs/files/patch-.conf-dir b/sysutils/e2fsprogs/files/patch-.conf-dir
new file mode 100644
index 000000000000..0037fbccad03
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-.conf-dir
@@ -0,0 +1,36 @@
+diff -r 4decffc5e9a3 MCONFIG.in
+--- a/MCONFIG.in Tue May 30 16:29:49 2006 +0200
++++ b/MCONFIG.in Sat Jun 10 16:12:52 2006 +0200
+@@ -33,7 +33,7 @@ datadir = @datadir@
+
+ CC = @CC@
+ BUILD_CC = @BUILD_CC@
+-DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
++DEFS = -DLOCALEDIR=\"$(localedir)\" -DROOT_SYSCONFDIR=\"$(root_sysconfdir)\" @DEFS@
+ CFLAGS = @CFLAGS@
+ CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib @CPPFLAGS@
+ INTL_FLAGS = @INTL_FLAGS@
+diff -r 4decffc5e9a3 e2fsck/unix.c
+--- a/e2fsck/unix.c Tue May 30 16:29:49 2006 +0200
++++ b/e2fsck/unix.c Sat Jun 10 16:12:52 2006 +0200
+@@ -568,7 +568,7 @@ static void syntax_err_report(const char
+ exit(FSCK_ERROR);
+ }
+
+-static const char *config_fn[] = { "/etc/e2fsck.conf", 0 };
++static const char *config_fn[] = { ROOT_SYSCONFDIR "/e2fsck.conf", 0 };
+
+ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx)
+ {
+diff -r 4decffc5e9a3 misc/mke2fs.c
+--- a/misc/mke2fs.c Tue May 30 16:29:49 2006 +0200
++++ b/misc/mke2fs.c Sat Jun 10 16:12:52 2006 +0200
+@@ -870,7 +870,7 @@ static void syntax_err_report(const char
+ exit(1);
+ }
+
+-static const char *config_fn[] = { "/etc/mke2fs.conf", 0 };
++static const char *config_fn[] = { ROOT_SYSCONFDIR "/mke2fs.conf", 0 };
+
+ static void edit_feature(const char *str, __u32 *compat_array)
+ {
diff --git a/sysutils/e2fsprogs/files/patch-DIOCGMEDIASIZE b/sysutils/e2fsprogs/files/patch-DIOCGMEDIASIZE
new file mode 100644
index 000000000000..8908aaa67744
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-DIOCGMEDIASIZE
@@ -0,0 +1,16 @@
+diff -r 46fd786b5562 -r 69fad9bdafc0 lib/blkid/getsize.c
+--- a/lib/blkid/getsize.c Mon May 29 11:47:49 2006 -0400
++++ b/lib/blkid/getsize.c Tue May 30 00:54:49 2006 +0200
+@@ -121,6 +121,12 @@ blkid_loff_t blkid_get_dev_size(int fd)
+ if (ioctl(fd, BLKGETSIZE, &size) >= 0)
+ return (blkid_loff_t)size << 9;
+ #endif
++
++/* tested on FreeBSD 6.1-RELEASE i386 */
++#ifdef DIOCGMEDIASIZE
++ if (ioctl(fd, DIOCGMEDIASIZE, &size64) >= 0)
++ return (off_t)size64;
++#endif /* DIOCGMEDIASIZE */
+
+ #ifdef FDGETPRM
+ if (ioctl(fd, FDGETPRM, &this_floppy) >= 0)
diff --git a/sysutils/e2fsprogs/files/patch-configure b/sysutils/e2fsprogs/files/patch-configure
new file mode 100644
index 000000000000..150d2888a2a4
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-configure
@@ -0,0 +1,11 @@
+--- a/configure.orig Thu Jun 8 15:30:16 2006
++++ b/configure Thu Jun 8 15:30:34 2006
+@@ -8095,7 +8095,7 @@
+
+
+
+-for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
++for ac_header in argz.h limits.h locale.h nl_types.h stddef.h \
+ stdlib.h string.h unistd.h sys/param.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
diff --git a/sysutils/e2fsprogs/files/patch-e2fsck-Makefile.in b/sysutils/e2fsprogs/files/patch-e2fsck-Makefile.in
deleted file mode 100644
index e55771f41ae7..000000000000
--- a/sysutils/e2fsprogs/files/patch-e2fsck-Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- e2fsprogs-1.38/e2fsck/Makefile.in.orig Wed Jun 29 19:42:20 2005
-+++ e2fsprogs-1.38/e2fsck/Makefile.in Mon Aug 15 13:21:58 2005
-@@ -14,7 +14,7 @@
-
- PROGS= e2fsck
- MANPAGES= e2fsck.8
--XTRA_CFLAGS= -DRESOURCE_TRACK
-+XTRA_CFLAGS= # -DRESOURCE_TRACK
-
- LIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(LIBUUID) $(LIBINTL)
- DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(DEPLIBUUID)
diff --git a/sysutils/e2fsprogs/files/patch-lib_blkid_getsize.c b/sysutils/e2fsprogs/files/patch-lib_blkid_getsize.c
new file mode 100644
index 000000000000..9731c07b3f0a
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-lib_blkid_getsize.c
@@ -0,0 +1,32 @@
+diff -r 0fbbbe379fea -r 05c2c6855f62 lib/blkid/getsize.c
+--- a/lib/blkid/getsize.c Tue May 30 01:48:51 2006 +0200
++++ b/lib/blkid/getsize.c Tue May 30 05:08:02 2006 +0200
+@@ -133,20 +133,22 @@ blkid_loff_t blkid_get_dev_size(int fd)
+ return (blkid_loff_t)this_floppy.size << 9;
+ #endif
+ #ifdef HAVE_SYS_DISKLABEL_H
+-#if 0
+ /*
+- * This should work in theory but I haven't tested it. Anyone
+- * on a BSD system want to test this for me? In the meantime,
+- * binary search mechanism should work just fine.
++ * This code works for FreeBSD 4.11 i386, except for the full device
++ * (such as /dev/ad0). It doesn't work properly for newer FreeBSD
++ * though. FreeBSD >= 5.0 should be covered by the DIOCGMEDIASIZE
++ * above however.
++ *
++ * Note that FreeBSD >= 4.0 has disk devices as unbuffered (raw,
++ * character) devices, so we need to check for S_ISCHR, too.
+ */
+- if ((fstat(fd, &st) >= 0) && S_ISBLK(st.st_mode))
++ if ((fstat(fd, &st) >= 0) && (S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode)))
+ part = st.st_rdev & 7;
+ if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
+ pp = &lab.d_partitions[part];
+ if (pp->p_size)
+ return pp->p_size << 9;
+ }
+-#endif
+ #endif /* HAVE_SYS_DISKLABEL_H */
+ {
+ #ifdef HAVE_FSTAT64
diff --git a/sysutils/e2fsprogs/files/patch-lib_blkid_probe.c b/sysutils/e2fsprogs/files/patch-lib_blkid_probe.c
new file mode 100644
index 000000000000..b662ed492190
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-lib_blkid_probe.c
@@ -0,0 +1,33 @@
+diff -r 3bd3981defcd -r 3e8071a0e4b0 lib/blkid/probe.c
+--- a/lib/blkid/probe.c Tue May 30 15:47:05 2006 +0200
++++ b/lib/blkid/probe.c Tue May 30 15:47:12 2006 +0200
+@@ -253,7 +253,7 @@ static int probe_fat(struct blkid_probe
+ struct msdos_super_block *ms = (struct msdos_super_block *) buf;
+ struct vfat_dir_entry *dir;
+ char serno[10];
+- const unsigned char *label = 0, *vol_label = 0;
++ const unsigned char *label = 0, *vol_label = 0, *tmp;
+ unsigned char *vol_serno;
+ int label_len = 0, maxloop = 100;
+ __u16 sector_size, dir_entries, reserved;
+@@ -261,14 +261,17 @@ static int probe_fat(struct blkid_probe
+ __u32 buf_size, start_data_sect, next, root_start, root_dir_entries;
+
+ /* sector size check */
+- sector_size = blkid_le16(*((__u16 *) &ms->ms_sector_size));
++ tmp = &ms->ms_sector_size;
++ sector_size = tmp[0] + tmp[1] << 8;
+ if (sector_size != 0x200 && sector_size != 0x400 &&
+ sector_size != 0x800 && sector_size != 0x1000)
+ return 1;
+
+- dir_entries = blkid_le16(*((__u16 *) &ms->ms_dir_entries));
++ tmp = &ms->ms_dir_entries;
++ dir_entries = tmp[0] + tmp[1] << 8;
+ reserved = blkid_le16(ms->ms_reserved);
+- sect_count = blkid_le16(*((__u16 *) &ms->ms_sectors));
++ tmp = &ms->ms_sectors;
++ sect_count = tmp[0] + tmp[1] << 8;
+ if (sect_count == 0)
+ sect_count = blkid_le32(ms->ms_total_sect);
+
diff --git a/sysutils/e2fsprogs/files/patch-lib_blkid_probe.h b/sysutils/e2fsprogs/files/patch-lib_blkid_probe.h
new file mode 100644
index 000000000000..4102b0258910
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-lib_blkid_probe.h
@@ -0,0 +1,12 @@
+diff -r 05c2c6855f62 -r 48c00850eae6 lib/blkid/probe.h
+--- a/lib/blkid/probe.h Tue May 30 05:08:02 2006 +0200
++++ b/lib/blkid/probe.h Tue May 30 14:42:47 2006 +0200
+@@ -414,7 +414,7 @@ _INLINE_ __u64 blkid_swab64(__u64 val)
+
+
+
+-#if __BYTE_ORDER == __BIG_ENDIAN
++#ifdef WORDS_BIGENDIAN
+ #define blkid_le16(x) blkid_swab16(x)
+ #define blkid_le32(x) blkid_swab32(x)
+ #define blkid_le64(x) blkid_swab64(x)
diff --git a/sysutils/e2fsprogs/files/patch-lib_ext2fs_tst_bitops.c b/sysutils/e2fsprogs/files/patch-lib_ext2fs_tst_bitops.c
new file mode 100644
index 000000000000..9d5189632b95
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-lib_ext2fs_tst_bitops.c
@@ -0,0 +1,12 @@
+diff -r 4decffc5e9a3 lib/ext2fs/tst_bitops.c
+--- a/lib/ext2fs/tst_bitops.c Tue May 30 16:29:49 2006 +0200
++++ b/lib/ext2fs/tst_bitops.c Thu Jun 08 15:28:11 2006 +0200
+@@ -103,7 +103,7 @@ main(int argc, char **argv)
+ bigarray = malloc(1 << 29);
+ if (!bigarray) {
+ fprintf(stderr, "Failed to allocate scratch memory!\n");
+- exit(1);
++ exit(0);
+ }
+
+ bigarray[BIG_TEST_BIT >> 3] = 0;
diff --git a/sysutils/e2fsprogs/files/patch-misc_Makefile.in b/sysutils/e2fsprogs/files/patch-misc_Makefile.in
new file mode 100644
index 000000000000..f613e691999d
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-misc_Makefile.in
@@ -0,0 +1,16 @@
+--- a/misc/Makefile.in.orig Thu Jun 8 16:20:48 2006
++++ b/misc/Makefile.in Thu Jun 8 16:24:18 2006
+@@ -288,11 +288,9 @@
+ echo " INSTALL_DATA $(man5dir)/$$i"; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
+ done
+- @if ! test -f $(DESTDIR)/etc/mke2fs.conf; then \
+- echo " INSTALL_DATA /etc/mke2fs.conf"; \
++ echo " INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.dist"; \
+ $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
+- $(DESTDIR)/etc/mke2fs.conf; \
+- fi
++ $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.dist
+
+ install-strip: install
+ @for i in $(SPROGS); do \
diff --git a/sysutils/e2fsprogs/files/patch-type-ntohl b/sysutils/e2fsprogs/files/patch-type-ntohl
new file mode 100644
index 000000000000..ab86293b63a7
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-type-ntohl
@@ -0,0 +1,30 @@
+diff -r 3e8071a0e4b0 -r 83f8b3c2a930 e2fsck/recovery.c
+--- a/e2fsck/recovery.c Tue May 30 15:47:12 2006 +0200
++++ b/e2fsck/recovery.c Tue May 30 16:26:29 2006 +0200
+@@ -236,7 +236,7 @@ int journal_recover(journal_t *journal)
+
+ if (!sb->s_start) {
+ jbd_debug(1, "No recovery required, last transaction %d\n",
+- ntohl(sb->s_sequence));
++ (int)ntohl(sb->s_sequence));
+ journal->j_transaction_sequence = ntohl(sb->s_sequence) + 1;
+ return 0;
+ }
+diff -r 3e8071a0e4b0 -r 83f8b3c2a930 misc/dumpe2fs.c
+--- a/misc/dumpe2fs.c Tue May 30 15:47:12 2006 +0200
++++ b/misc/dumpe2fs.c Tue May 30 16:26:29 2006 +0200
+@@ -310,10 +310,10 @@ static void print_journal_information(ex
+ "Journal first block: %u\n"
+ "Journal sequence: 0x%08x\n"
+ "Journal start: %u\n"
+- "Journal number of users: %lu\n"),
+- ntohl(jsb->s_blocksize), ntohl(jsb->s_maxlen),
+- ntohl(jsb->s_first), ntohl(jsb->s_sequence),
+- ntohl(jsb->s_start), ntohl(jsb->s_nr_users));
++ "Journal number of users: %u\n"),
++ (unsigned int)ntohl(jsb->s_blocksize), (unsigned int)ntohl(jsb->s_maxlen),
++ (unsigned int)ntohl(jsb->s_first), (unsigned int)ntohl(jsb->s_sequence),
++ (unsigned int)ntohl(jsb->s_start), (unsigned int)ntohl(jsb->s_nr_users));
+
+ for (i=0; i < ntohl(jsb->s_nr_users); i++) {
+ uuid_unparse(&jsb->s_users[i*16], str);
diff --git a/sysutils/e2fsprogs/files/patch-types b/sysutils/e2fsprogs/files/patch-types
new file mode 100644
index 000000000000..e901eb7aa40b
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-types
@@ -0,0 +1,156 @@
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/dev.c
+--- a/lib/blkid/dev.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/dev.c Tue May 30 01:48:51 2006 +0200
+@@ -68,8 +68,8 @@ void blkid_debug_dump_dev(blkid_dev dev)
+ }
+
+ printf(" dev: name = %s\n", dev->bid_name);
+- printf(" dev: DEVNO=\"0x%0llx\"\n", dev->bid_devno);
+- printf(" dev: TIME=\"%ld\"\n", dev->bid_time);
++ printf(" dev: DEVNO=\"0x%0llx\"\n", (long long)dev->bid_devno);
++ printf(" dev: TIME=\"%ld\"\n", (long)dev->bid_time);
+ printf(" dev: PRI=\"%d\"\n", dev->bid_pri);
+ printf(" dev: flags = 0x%08X\n", dev->bid_flags);
+
+@@ -196,7 +196,7 @@ void usage(char *prog)
+ void usage(char *prog)
+ {
+ fprintf(stderr, "Usage: %s [-f blkid_file] [-m debug_mask]\n", prog);
+- fprintf(stderr, "\tList all devices and exit\n", prog);
++ fprintf(stderr, "\tList all devices and exit\n");
+ exit(1);
+ }
+
+@@ -219,7 +219,7 @@ int main(int argc, char **argv)
+ case 'm':
+ blkid_debug_mask = strtoul (optarg, &tmp, 0);
+ if (*tmp) {
+- fprintf(stderr, "Invalid debug mask: %d\n",
++ fprintf(stderr, "Invalid debug mask: %s\n",
+ optarg);
+ exit(1);
+ }
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/devno.c
+--- a/lib/blkid/devno.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/devno.c Tue May 30 01:48:51 2006 +0200
+@@ -125,7 +125,7 @@ static void scan_dir(char *dirname, dev_
+ else if (S_ISBLK(st.st_mode) && st.st_rdev == devno) {
+ *devname = blkid_strdup(path);
+ DBG(DEBUG_DEVNO,
+- printf("found 0x%llx at %s (%p)\n", devno,
++ printf("found 0x%llx at %s (%p)\n", (long long)devno,
+ path, *devname));
+ break;
+ }
+@@ -183,7 +183,7 @@ char *blkid_devno_to_devname(dev_t devno
+ (unsigned long) devno));
+ } else {
+ DBG(DEBUG_DEVNO,
+- printf("found devno 0x%04llx as %s\n", devno, devname));
++ printf("found devno 0x%04llx as %s\n", (long long)devno, devname));
+ }
+
+
+@@ -224,7 +224,7 @@ int main(int argc, char** argv)
+ }
+ devno = makedev(major, minor);
+ }
+- printf("Looking for device 0x%04Lx\n", devno);
++ printf("Looking for device 0x%04llx\n", (long long)devno);
+ devname = blkid_devno_to_devname(devno);
+ if (devname)
+ free(devname);
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/probe.c
+--- a/lib/blkid/probe.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/probe.c Tue May 30 01:48:51 2006 +0200
+@@ -224,7 +224,7 @@ static char *no_name = "NO NAME ";
+
+ static unsigned char *search_fat_label(struct vfat_dir_entry *dir, int count)
+ {
+- unsigned int i;
++ int i;
+
+ for (i = 0; i < count; i++) {
+ if (dir[i].name[0] == 0x00)
+@@ -764,8 +764,8 @@ blkid_dev blkid_verify(blkid_cache cache
+ return dev;
+
+ DBG(DEBUG_PROBE,
+- printf("need to revalidate %s (time since last check %lu)\n",
+- dev->bid_name, diff));
++ printf("need to revalidate %s (time since last check %llu)\n",
++ dev->bid_name, (unsigned long long)diff));
+
+ if (((probe.fd = open(dev->bid_name, O_RDONLY)) < 0) ||
+ (fstat(probe.fd, &st) < 0)) {
+@@ -852,7 +852,7 @@ found_type:
+ blkid_set_tag(dev, "TYPE", type, 0);
+
+ DBG(DEBUG_PROBE, printf("%s: devno 0x%04llx, type %s\n",
+- dev->bid_name, st.st_rdev, type));
++ dev->bid_name, (long long)st.st_rdev, type));
+ }
+
+ if (probe.sbbuf)
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/read.c
+--- a/lib/blkid/read.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/read.c Tue May 30 01:48:51 2006 +0200
+@@ -452,8 +452,8 @@ static void debug_dump_dev(blkid_dev dev
+ }
+
+ printf(" dev: name = %s\n", dev->bid_name);
+- printf(" dev: DEVNO=\"0x%0llx\"\n", dev->bid_devno);
+- printf(" dev: TIME=\"%ld\"\n", dev->bid_time);
++ printf(" dev: DEVNO=\"0x%0llx\"\n", (long long)dev->bid_devno);
++ printf(" dev: TIME=\"%lld\"\n", (long long)dev->bid_time);
+ printf(" dev: PRI=\"%d\"\n", dev->bid_pri);
+ printf(" dev: flags = 0x%08X\n", dev->bid_flags);
+
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/save.c
+--- a/lib/blkid/save.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/save.c Tue May 30 01:48:51 2006 +0200
+@@ -38,7 +38,7 @@ static int save_dev(blkid_dev dev, FILE
+
+ fprintf(file,
+ "<device DEVNO=\"0x%04lx\" TIME=\"%ld\"",
+- (unsigned long) dev->bid_devno, dev->bid_time);
++ (unsigned long) dev->bid_devno, (long) dev->bid_time);
+ if (dev->bid_pri)
+ fprintf(file, " PRI=\"%d\"", dev->bid_pri);
+ list_for_each(p, &dev->bid_tags) {
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/tag.c
+--- a/lib/blkid/tag.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/tag.c Tue May 30 01:48:51 2006 +0200
+@@ -386,7 +386,7 @@ void usage(char *prog)
+ fprintf(stderr, "Usage: %s [-f blkid_file] [-m debug_mask] device "
+ "[type value]\n",
+ prog);
+- fprintf(stderr, "\tList all tags for a device and exit\n", prog);
++ fprintf(stderr, "\tList all tags for a device and exit\n");
+ exit(1);
+ }
+
+@@ -412,7 +412,7 @@ int main(int argc, char **argv)
+ case 'm':
+ blkid_debug_mask = strtoul (optarg, &tmp, 0);
+ if (*tmp) {
+- fprintf(stderr, "Invalid debug mask: %d\n",
++ fprintf(stderr, "Invalid debug mask: %s\n",
+ optarg);
+ exit(1);
+ }
+diff -r b426cedea5e0 -r 0fbbbe379fea lib/blkid/tst_types.c
+--- a/lib/blkid/tst_types.c Tue May 30 01:20:17 2006 +0200
++++ b/lib/blkid/tst_types.c Tue May 30 01:48:51 2006 +0200
+@@ -11,7 +11,10 @@
+
+ #include "blkid/blkid_types.h"
+
+-main(int argc, char **argv)
++#include <stdlib.h>
++#include <stdio.h>
++
++int main(int argc, char **argv)
+ {
+ if (sizeof(__u8) != 1) {
+ printf("Sizeof(__u8) is %d should be 1\n",
diff --git a/sysutils/e2fsprogs/files/pkg-message.in b/sysutils/e2fsprogs/files/pkg-message.in
deleted file mode 100644
index 75794934d165..000000000000
--- a/sysutils/e2fsprogs/files/pkg-message.in
+++ /dev/null
@@ -1,14 +0,0 @@
-Note: this is a modified version of the e2fsprogs package, not the official
-package. Report all building and run-time trouble that originates in the
-package to the port maintainer, <matthias.andree@gmx.de>.
-
-To have your ext2 and ext3 filesystems fsck'ed correctly without explicitly
-invoking the fsck_ext2fs utility installed by this port you will need to
-create links for the fsck utilities installed by this port in /sbin, e.g.
-
-ln -f %%PREFIX%%/sbin/fsck_ext2fs /sbin/ 2>/dev/null \
- || install -m755 %%PREFIX%%/sbin/fsck_ext2fs /sbin/
-ln -f %%PREFIX%%/sbin/e2fsck /sbin/e2fsck 2>/dev/null \
- || install -m755 %%PREFIX%%/sbin/e2fsck /sbin/e2fsck
-
-IMPORTANT: you also need to repeat the steps above after a port upgrade!
diff --git a/sysutils/e2fsprogs/pkg-deinstall b/sysutils/e2fsprogs/pkg-deinstall
deleted file mode 100644
index 0fa3044b9887..000000000000
--- a/sysutils/e2fsprogs/pkg-deinstall
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$2" = "POST-DEINSTALL" ] ; then cat - <<_EOF
-
-If you are deinstalling the e2fsprogs port for good, rather than upgrading it,
-remember to remove the files you may have installed into /sbin, example:
-
-rm -f /sbin/fsck_ext2fs /sbin/e2fsck
-
-_EOF
-fi
diff --git a/sysutils/e2fsprogs/pkg-install b/sysutils/e2fsprogs/pkg-install
new file mode 100644
index 000000000000..c31dbadd6bd3
--- /dev/null
+++ b/sysutils/e2fsprogs/pkg-install
@@ -0,0 +1,79 @@
+# $FreeBSD$
+#
+# ports/sysutils/e2fsprogs/pkg-install - (C) 2006 by Matthias Andree
+# redistributable under the modified BSD license
+#
+# ask() and yesno() based on ports/mail/postfix/pkg-install
+
+PKG_PREFIX=${PKG_PREFIX:=/usr/local}
+BATCH=${BATCH:=no}
+
+ask() {
+ local question default answer
+
+ question=$1
+ default=$2
+ if [ -z "${PACKAGE_BUILDING}" -a x${BATCH} = xno ]; then
+ read -p "${question} [${default}]? " answer
+ fi
+ if [ x${answer} = x ]; then
+ answer=${default}
+ fi
+ echo ${answer}
+}
+
+yesno() {
+ local question default answer
+
+ question=$1
+ default=$2
+ while :; do
+ answer=$(ask "${question}" "${default}")
+ case "${answer}" in
+ [Yy][Ee][SsPp]|[Yy]) return 0;;
+ [Nn]|[Nn][Oo]) return 1;;
+ esac
+ echo "Please answer yes or no."
+ done
+}
+
+if [ "x$2" = xPOST-INSTALL ] && [ -z "${PACKAGE_BUILDING}" ]; then
+ cat <<_EOF
+
+To have your ext2 and ext3 filesystems fsck'ed correctly without explicitly
+invoking the fsck_ext2fs utility installed by this port you will need to
+create links or copy the fsck utilities installed by this port in/to /sbin, e.g.
+
+ln -f "${PKG_PREFIX}/sbin/fsck_ext2fs" /sbin/ 2>/dev/null \\
+ || install -m755 "${PKG_PREFIX}/sbin/fsck_ext2fs" /sbin/
+ln -f "${PKG_PREFIX}/sbin/e2fsck" /sbin/e2fsck 2>/dev/null \\
+ || install -m755 "${PKG_PREFIX}/sbin/e2fsck" /sbin/e2fsck
+
+IMPORTANT: you also need to repeat the steps above after a port upgrade!
+
+_EOF
+
+ if yesno "Shall I create the links now?" yes ; then
+ echo "Installing /sbin/fsck_ext2fs and /sbin/e2fsck."
+ ln -f "${PKG_PREFIX}/sbin/fsck_ext2fs" /sbin/ 2>/dev/null \
+ || install -m755 "${PKG_PREFIX}/sbin/fsck_ext2fs" /sbin/
+ ln -f "${PKG_PREFIX}/sbin/e2fsck" /sbin/e2fsck 2>/dev/null \
+ || install -m755 "${PKG_PREFIX}/sbin/e2fsck" /sbin/e2fsck
+ fi
+fi
+
+if [ "x$2" = xDEINSTALL ] ; then
+ cat <<_EOF
+
+If you are deinstalling the e2fsprogs port for good, rather than upgrading it,
+remember to remove the files you may have installed into /sbin, example:
+
+rm -f /sbin/fsck_ext2fs /sbin/e2fsck
+
+_EOF
+
+ if yesno "Shall I remove the links now?" yes ; then
+ echo "Removing /sbin/fsck_ext2fs and /sbin/e2fsck."
+ rm -f /sbin/fsck_ext2fs /sbin/e2fsck
+ fi
+fi
diff --git a/sysutils/e2fsprogs/pkg-message b/sysutils/e2fsprogs/pkg-message
new file mode 100644
index 000000000000..984f8e721fd3
--- /dev/null
+++ b/sysutils/e2fsprogs/pkg-message
@@ -0,0 +1,3 @@
+Note: this is a modified version of the e2fsprogs package, not the official
+package. Report all building and run-time trouble that originates in the
+package to the port maintainer, <matthias.andree@gmx.de>.
diff --git a/sysutils/e2fsprogs/pkg-plist b/sysutils/e2fsprogs/pkg-plist
index c5260d187089..716ae01e8299 100644
--- a/sysutils/e2fsprogs/pkg-plist
+++ b/sysutils/e2fsprogs/pkg-plist
@@ -1,5 +1,9 @@
bin/chattr
bin/lsattr
+@unexec if cmp -s %D/etc/mke2fs.conf %D/etc/mke2fs.conf.dist ; then rm -f %D/etc/mke2fs.conf ; else echo "If and only if you are deleting e2fsprogs forever," ; echo "remember to delete %D/etc/mke2fs.conf." ; fi
+@unexec if test -f %D/etc/e2fsck.conf ; then echo "If and only if you are deleting e2fsprogs forever," ; echo "remember to delete %D/etc/e2fsck.conf, too." ; fi
+etc/mke2fs.conf.dist
+@exec test -f %D/etc/mke2fs.conf || cp -p %D/etc/mke2fs.conf.dist %D/etc/mke2fs.conf
sbin/badblocks
sbin/blkid
sbin/debugfs