Disable the compression flag, and enable symlinks for the install
(this is the same as previous debian packages; debian recommends
against using hard links across different directories)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
After debian bug #192277, debian/rules started making a symlink
to com_err.h in /usr/include. Now I have Fedora bug #550889
for the same issue, and perhaps it's time to make this link
by default, rather than fixing it up in packaging steps?
[ Changed by tytso to remove the explicit -s option; this will default
to creating a hard link by default, which slightly faster. If
people want to use symlinks for all links during the install
process, they can use configure option --enable-symlink-install.
The reason for this change is that some file systems, like AFS,
don't support symlinks, and AFS users complain when they can't build
or install into AFS. So I don't want to use symlinks
unconditionally without a way of switching things back and forth,
and it's easier if we just make all links made during the install
process to be hard links or sym links. ]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Some devices, notably 4k sector drives, may have a 512 logical
sector size, mapped onto a 4k physical sector size.
When mke2fs is ratcheting down the blocksize for small filesystems,
or when a blocksize is specified on the commandline, we should not
willingly go below the physical sector size of the device.
When a blocksize is specified, we -must- not go below
the logical sector size of the device.
Add a new library function, ext2fs_get_device_phys_sectsize()
to get the physical sector size if possible, and adjust the
logic in mke2fs to enforce the above rules.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
From: Kees Cook <kees@debian.org>
I noticed that the debian/rules contains "-fno-stack-protector". While
this used to be needed a while back, this is no longer required, as the
stack protection code will be statically compiled into the static e2fsprogs
correctly now.
Addresses-Debian-Bug: #573923
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Unfortunately, texi2html gratuitously changed its behavior of where
its output html files are placed when the -split_chapter is in effect.
(First it was in a subdirectory; then it was in the current directory;
now it's back to putting the output html files in a subdirectory
again.)
Support either way of doing things since the texi2html team seems to
be indecisive...
Addresses-Debian-Bug: #552934
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Unfortunately, due to Windows' unfortunate design decision to
configure the hardware clock to tick localtime, instead of the more
proper and less error-prone UTC time, many users end up in the
situation where the system clock is incorrectly set at the time when
e2fsck is run.
Historically this was usually due to some distributions having buggy
init scripts and/or installers that didn't correctly detect this case
and take appropriate countermeasures. However, it's still possible,
despite the best efforts of init script and installer authors to not
be able to detect this misconfiguration, usually due to a buggy or
misconfigured virtualization manager or the installer not having
access to a network time server during the installation process. So
by default, we allow the superblock times to be fudged by up to 24
hours. This can be disabled by setting options.accept_time_fudge to
the boolean value of false in e2fsck.conf. The old
options.buggy_init_scripts is left for backwards compatibility.
Since we are now accepting the 24 hour time fudge by default, there is
no longer a need to install an Ubuntu-specific e2fsck.conf file, so we
can remove it.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Remove the configure options --with-cc, --with-ccopts, --with-ldopts,
and --with-ld (which never worked), since the first three can be
replaced with CC=, CCFLAGS=, and LDFLAGS= on the configure
command-line. The default for --with-cc caused the CC= to be
overridden even with it was specified to the configure script.
Addresses-Sourceforge-Bug: #2843248
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
If building with util-linux-ng, we will use the external libblkid and
libuuid, as well as disabling the internal fsck.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
E2fsprogs is used for ext2, ext3, and ext4 filesystems. Update the
package descriptions accordingly:
Addresses-Debian-Bug: #535530
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Optimize ext2fs_test_block_bitmap_range() and add a new function,
ext2fs_test_inode_bitmap_range(), which works the same way as
ext2fs_block_bitmap_range() but for inode bitmaps. It's needed for
some code in the development branch, so let's drop it into the maint
branch to make life easier in the future.
Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Previously e2fsprogs interpreted 0 for a rec_len of 65536 (which could
occur if the directory block is completely empty in 64k blocksize
filesystems), while the kernel interpreted 65535 to mean 65536. The
kernel will accept both to mean 65536, and encodes 65535 to be 65536.
This commit changes e2fsprogs to match.
We add the encoding agreed upon for 128k and 256k filesystems, but we
don't enable support for these larger block sizes, since they haven't
been fully tested.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This fixes the Lintian warning:
The copyright file refers to the versionless symlink in
/usr/share/common-licenses for the full text of the GPL, LGPL, or GFDL
license, but the package does not appear to allow distribution under
later versions of the license. This symlink will change with each
release of a new version of the license and may therefore point to a
different version than the package is released under. debian/copyright
should instead refers to the specific version of the license that the
package references.
For example, if the package says something like "you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; version 2 dated June, 1991,"
the debian/copyright file should refer to
/usr/share/common-licenses/GPL-2, not /GPL.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
On x86_64 systems, we need to filter out linux-vdso.so lines from the
output of the ldd program when determining the library dependencies.
Addresses-Debian-Bug: #503057
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
SuSE has been carrying a patch for a long time to prevent a largely
theoretical race condition if a multi-threaded application adds and
removes error tables in multiple threads. Unfortunately SuSE's
approach breaks compatibility by forcing applications to link and
compile with the -pthread option; using pthread mutexes has
historically been problematic.
This commit fixes things in a more portable way by using
sem_post/sem_wait instead, which is an older interface that doesn't
require the pthreads library. Linux happens to implement
sem_post/sem_init using futexes, and -lrt ends up pulling in
-lpthread, but the advantage of using POSIX semaphores is that
applications don't have to be built using -pthread, unlike the use of
pthread mutexes.
The add_error_table() and remove_error_table() interfaces are the
preferred interfaces and locking protection have been added to only
these interfaces. I have not added locking protection to the
generated initialize_xxx_error_table and initialize_xxx_error_table_r
interfaces, to avoid adding symbol dependencies that would cause a
library to fail to work when linking against older com_err libraries
that do not export et_list_lock() and et_list_unlock(). Threaded
applications shouldn't be using these interfaces in any case.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This fixes a regression introduced in commit 4f2e8f19 where we
inadvertently disabled the use of dietlibc on all architectures,
instead of just on those architectures which didn't support dietlibc.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Test I/O debugging is incredibly useful for rooting out problems, so
let's enable by default, especially now that its overhead is only
incurred when it is needed.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Provide a C language wrapper function for io_channel_read_blk64() and
io_channel_write_blk64() instead of using a C preprocessor macro, with
an fallback to the old 32-bit functions if an application-provided I/O
channel manager doesn't supply 64-bit method functions and the block
numbers can fit in 32-bit integer.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
blkid_devdirs was defined in blkidP.h and was never intended to be
used outside of the library. Since it no longer needs to be shared
across object files, rename it and turn it into a static variable.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit works by removing all calls from libdevmapper altogether,
and using the standard support for "normal" non-dm devices.
It depends on dm devices being placed in /dev/mapper (but the previous
code had this dependency anyway), and /proc/partitions containing dm
devices.
We don't actually rip out the libdevmapper code in this commit, but
just disable it via #undef HAVE_DEVMAPPER, just so it's easier to
review and understand the fundamental code changes. A subsequent
commit will remove the libdevmapper code, as well as unexport
the blkid_devdirs string array.
Thanks to Karel Zak for inspiring me to look at the dm code in blkid,
so I could realize how much it deserved to ripped out by its roots. :-)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
I want to make sure the uuidd daemon is shutdown before removing
the package. Since the uuidd daemon is provided by the uuid-runtime
package, and I *know* exactly where it is, and I ***don't*** want the
script to be confused by some other pathname being used by the local
administrator, I specify an explicit pathname. In addition, given the
explicit test to make sure /usr/sbin/uuidd exists, it seems non-sensical
to remove the prepended path.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The libuuid1.postinst script doesn't really call adduser; it just
checks the adduser config file, if it exists. The lintain maintainers
agree this is a spurious warning, and it will be fixed eventually.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This override is no longer necessary since lintian excludes foo.static
binaries from the static binary test.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The syntax for /etc/adduser.conf allows spaces around the equals sign,
i.e.:
GROUPHOMES = no
We were previously asking /bin/sh to source the file, which doesn't
support the above syntax. So pull out the necessary fields via
sed/grep.
Thanks to Juan A. Diaz for reporting the bug and suggesting the fix.
Addresses-Debian-Bug: #487443
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>