DH_VERSION := $(shell dpkg-query -W -f '$${Version}' debhelper)
+USE_DH9 ?= $(shell if dpkg --compare-versions $(DH_VERSION) lt 11 ; then echo yes ; fi)
+
# USE_DBGSYM :=
USE_DBGSYM ?= $(shell if dpkg --compare-versions $(DH_VERSION) ">=" 9.20160114 ; then echo yes ; fi)
UDEB_PRIORITY ?= $(shell grep '^Package: e2fsprogs-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
STAMPSDIR ?= debian/stampdir
+CFGDH ?= ${STAMPSDIR}/configure-dh
CFGSTDSTAMP ?= ${STAMPSDIR}/configure-std-stamp
CFGBFSTAMP ?= ${STAMPSDIR}/configure-bf-stamp
BUILDSTDSTAMP ?= ${STAMPSDIR}/build-std-stamp
BACKTRACE_CONF_FLAGS ?= $(shell if ${debdir}/scripts/test-backtrace ; then echo --disable-backtrace ; fi)
-COMMON_CONF_FLAGS = --disable-e2initrd-helper \
+COMMON_CONF_FLAGS = --enable-lto --disable-ubsan --disable-addrsan \
+ --disable-threadsan --disable-e2initrd-helper \
--infodir=/usr/share/info --enable-symlink-install \
--with-multiarch=$(DEB_HOST_MULTIARCH) \
$(BACKTRACE_CONF_FLAGS) $(UTIL_CONF_FLAGS)
mv debian/control.save debian/control ; \
fi
-${CFGSTDSTAMP}:
+${CFGDH}:
+ifeq ($(USE_DH9),yes)
+ mv debian/compat debian/compat.save
+ echo 9 > debian/compat
+ mv debian/e2fsprogs.postinst debian/e2fsprogs.postinst.save
+ cp debian/e2fsprogs.postinst.dh9 debian/e2fsprogs.postinst
+ cp debian/e2fsprogs.postrm.dh9 debian/e2fsprogs.postrm
+endif
+ mkdir -p ${STAMPSDIR}
+ touch ${CFGDH}
+
+${CFGSTDSTAMP}: ${CFGDH}
dh_testdir
if which dh_update_autotools_config > /dev/null 2>&1 ; then \
dh_update_autotools_config ;\
mkdir -p ${STAMPSDIR}
touch ${CFGSTDSTAMP}
-${CFGBFSTAMP}:
+${CFGBFSTAMP}: ${CFGDH}
dh_testdir
if which dh_update_autotools_config > /dev/null 2>&1 ; then \
dh_update_autotools_config ;\
mv debian/orig-gmo/* po ; \
rmdir debian/orig-gmo ; \
fi
+ if test -f debian/compat.save; then \
+ mv debian/compat.save debian/compat ; \
+ fi
+ if test -f debian/e2fsprogs.postinst.save; then \
+ mv debian/e2fsprogs.postinst.save debian/e2fsprogs.postinst ; \
+ fi
+ if test -f debian/e2fsprogs.postrm; then \
+ rm -f debian/e2fsprogs.postrm ; \
+ fi
rm -rf ${STAMPSDIR}
[ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} V=1 distclean
[ ! -f ${bfbuilddir}/Makefile ] || $(MAKE) -C ${bfbuilddir} V=1 distclean
mkdir -p ${debdir}/libcom-err${COMERR_SOVERSION}/usr/share/doc/libcom-err${COMERR_SOVERSION}
mkdir -p ${debdir}/comerr-dev/usr/share/doc
- mkdir -p ${debdir}/libext2fs2/usr/share/doc/libext2fs
+ mkdir -p ${debdir}/libext2fs2/usr/share/doc/libext2fs2
mkdir -p ${debdir}/libext2fs-dev/usr/share/doc
dh_installdocs -a -Ne2fsprogs-udeb
# HTML docs
- $(INSTALL) -d ${debdir}/libext2fs-dev/usr/share/doc/libext2fs/html-info/
+ $(INSTALL) -d ${debdir}/libext2fs-dev/usr/share/doc/libext2fs2/html-info/
$(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \
- ${debdir}/libext2fs-dev/usr/share/doc/libext2fs/html-info/
+ ${debdir}/libext2fs-dev/usr/share/doc/libext2fs2/html-info/
$(INSTALL) -d ${debdir}/comerr-dev/usr/share/doc/comerr-dev/html-info/
$(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \
${debdir}/comerr-dev/usr/share/doc/comerr-dev/html-info/
# texinfo docs
mkdir -p ${debdir}/comerr-dev/usr/share/doc/comerr-dev
$(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \
- ${debdir}/libext2fs-dev/usr/share/doc/libext2fs/libext2fs.texi
+ ${debdir}/libext2fs-dev/usr/share/doc/libext2fs2/libext2fs.texi
$(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \
${debdir}/comerr-dev/usr/share/doc/comerr-dev/com_err.texi
dh_compress -a
dh_makeshlibs -a --add-udeb=e2fsprogs-udeb
-
+ifneq ($(USE_DH9),yes)
+ dh_installsystemd -p e2fsprogs
+endif
$(INSTALL) -D -p -m644 debian/e2fsprogs-udeb.lintian-overrides \
debian/e2fsprogs-udeb/usr/share/lintian/overrides/e2fsprogs-udeb
dh_installdeb -a
.B \-G
option.
.TP
+.B fname_encoding
+.br
+This ext4 feature provides file system level character encoding support
+for files and directories name. This feature is name-preserving on the
+disk, but it allows applications to lookup for a file in the file system
+using any encoding equivalent version of the file name.
+
+This feature is required to perform in-kernel case-insensitive file
+name lookups.
+.TP
.B has_journal
.br
Create a journal to ensure filesystem consistency even across unclean
option to
.BR mke2fs (8)
or
- .BR tune2fs(8).
+ .BR tune2fs(8) .
.TP
.B large_dir
.br
ext4, 3.18
.IP "\fBencrypt\fR" 2in
ext4, 4.1
- .IP "\fBmetadata_csum_seed\fR" 2in
+ .IP "\fBmetadata_csum_seed\fR" 2i
ext4, 4.4
- .IP "\fBproject\fR" 2in
+ .IP "\fBproject\fR" 2i
ext4, 4.5
- .IP "\fBea_inode\fR" 2in
+ .IP "\fBea_inode\fR" 2i
ext4, 4.13
- .IP "\fBlarge_dir\fR" 2in
+ .IP "\fBlarge_dir\fR" 2i
ext4, 4.13
.SH SEE ALSO
.BR mke2fs (8),
The following extended options are supported:
.RS 1.2i
.TP
+.BI fname_encoding= encoding-name
+Enable the
+.I fname_encoding
+feature in the super block and set
+.I encoding-name
+as the encoding to be used. If
+.I encoding-name
+is not specified, the encoding defined in
+.BR mke2fs.conf (5)
+is used.
+.TP
+.BI fname_encoding_flags= encoding-flags
+Define parameters for file name character encoding operations. If a
+flag is not changed using this parameter, its default value is used.
+.I encoding-flags
+should be a comma-separated lists of flags to be enabled. To disable a
+flag, add it to the list with the prefix "no".
+
+The only flag that can be set right now is
+.I strict
+which means that invalid strings should be rejected by the file system.
+In the default configuration, the
+.I strict
+flag is disabled.
+.TP
.BI mmp_update_interval= interval
Adjust the initial MMP update interval to
.I interval
entirely one time. If the option value is omitted, it defaults to 1 to
enable lazy journal inode zeroing.
.TP
- .BI no_copy_xattrs
+ .B no_copy_xattrs
Normally
.B mke2fs
will copy the extended attributes of the files in the directory
Set a flag in the filesystem superblock indicating that it may be
mounted using experimental kernel code, such as the ext4dev filesystem.
.TP
- .BI discard
+ .B discard
Attempt to discard blocks at mkfs time (discarding blocks initially is useful
on solid state devices and sparse / thin-provisioned storage). When the device
advertises that discard also zeroes data (any subsequent read after the discard
zeroed. This significantly speeds up filesystem initialization. This is set
as default.
.TP
- .BI nodiscard
+ .B nodiscard
Do not attempt to discard blocks at mkfs time.
.TP
- .BI quotatype
+ .B quotatype
Specify the which quota types (usrquota, grpquota, prjquota) which
should be enabled in the created file system. The argument of this
extended option should be a colon separated list. This option has
program should be run immediately after this option is used, and there
is no guarantee that any data will be salvageable. Due to the wide
variety of possible options to
- .BR mke2fs
+ .B mke2fs
that affect the on-disk layout, it is critical to specify exactly
the same format options, such as blocksize, fs-type, feature flags, and
other tunables when using this option, or the filesystem will be further
WARNING: The undo file cannot be used to recover from a power or system crash.
.SH ENVIRONMENT
.TP
- .BI MKE2FS_SYNC
+ .B MKE2FS_SYNC
If set to non-zero integer value, its value is used to determine how often
.BR sync (2)
is called during inode table initialization.
.TP
- .BI MKE2FS_CONFIG
+ .B MKE2FS_CONFIG
Determines the location of the configuration file (see
.BR mke2fs.conf (5)).
.TP
- .BI MKE2FS_FIRST_META_BG
+ .B MKE2FS_FIRST_META_BG
If set to non-zero integer value, its value is used to determine first meta
block group. This is mostly for debugging purposes.
.TP
- .BI MKE2FS_DEVICE_SECTSIZE
+ .B MKE2FS_DEVICE_SECTSIZE
If set to non-zero integer value, its value is used to determine logical
sector size of the
.IR device .
.TP
- .BI MKE2FS_DEVICE_PHYS_SECTSIZE
+ .B MKE2FS_DEVICE_PHYS_SECTSIZE
If set to non-zero integer value, its value is used to determine physical
sector size of the
.IR device .
.TP
- .BI MKE2FS_SKIP_CHECK_MSG
+ .B MKE2FS_SKIP_CHECK_MSG
If set, do not show the message of filesystem automatic check caused by
mount count or check interval.
.SH AUTHOR
.I [options]
stanza.
.TP
+.I fname_encoding
+This relation defines the file name encoding to be used by mke2fs, in
+case the user doesn't specify an encoding in the command line.
+.TP
.I proceed_delay
If this relation is set to a positive integer, then mke2fs will
wait
.B mke2fs.conf
file do not specify a default filesystem type, mke2fs will use a
default filesystem type of
- .IR ext3
+ .I ext3
if a journal was requested via a command-line option, or
.I ext2
if not.
.I zero_hugefiles
This boolean relation specifies whether or not zero blocks will be
written to the hugefiles while
- .BR mke2fs(8)
+ .BR mke2fs (8)
is creating them. By default, zero blocks will be written to the huge
files to avoid stale data from being made available to potentially
untrusted user programs, unless the device supports a discard/trim
]
device
.SH DESCRIPTION
- .BI tune2fs
+ .B tune2fs
allows the system administrator to adjust various tunable filesystem
parameters on Linux ext2, ext3, or ext4 filesystems. The current values
of these options can be displayed by using the
This superblock setting is only honored in 2.6.35+ kernels;
and not at all by the ext2 and ext3 file system drivers.
.TP
+.B force_fsck
+Set a flag in the filesystem superblock indicating that errors have been found.
+This will force fsck to run at the next mount.
+.TP
.B test_fs
Set a flag in the filesystem superblock indicating that it may be
mounted using experimental kernel code, such as the ext4dev filesystem.
On some distributions, such as Debian, if an initial ramdisk is used,
the initrd scripts will automatically convert an ext2 root filesystem
to ext3 if the
- .BR /etc/fstab
+ .B /etc/fstab
file specifies the ext3 filesystem for the root filesystem in order to
avoid requiring the use of a rescue floppy to add an ext3 journal to
the root filesystem.
can be run to convert existing directories to the hashed B-tree format.
Enabling certain filesystem features may prevent the filesystem from being
mounted by kernels which do not support those features. In particular, the
- .BR uninit_bg
+ .B uninit_bg
and
- .BR flex_bg
+ .B flex_bg
features are only supported by the ext4 filesystem.
.TP
.BI \-r " reserved-blocks-count"
given quota type. Quota options could be one or more of the following:
.RS 1.2i
.TP
- .BR [^]usrquota
+ .B [^]usrquota
Sets/clears user quota inode in the superblock.
.TP
- .BR [^]grpquota
+ .B [^]grpquota
Sets/clears group quota inode in the superblock.
.TP
- .BR [^]prjquota
+ .B [^]prjquota
Sets/clears project quota inode in the superblock.
.RE
.TP