Let's call this an important wishlist bug (important for Debian Installer
anyway :-)
Please add the following line to the shlibs files for libblkid and libuuid
respectively:
udeb: libblkid 1 libblkid1-udeb
udeb: libuuid 1 libuuid1-udeb
This will allow dpkg/debhelper to properly set the dependencies for udebs
that depend on the e2fsprogs libs.
Please see #345472 and #345475 for further info on this.
This will also mean that, eventually, we will be able to drop the
"Provides: ..." for the library udebs, but we cannot do that until other
udebs that currently depend on them have been rebuilt.
I'll file a separate bug when that change can be made.
Theodore Ts'o [Mon, 27 Mar 2006 06:10:17 +0000 (01:10 -0500)]
Fix minor installation problems in the misc's Makefile
Make sure $(DESTDIR)/usr/share/man/man5 exists when installing the man
page. Make sure the compressed version of the man pages are deleted
when installing the man pages.
Theodore Ts'o [Sat, 25 Mar 2006 18:42:45 +0000 (13:42 -0500)]
Fix the i386 bitmap operations so they are 32-bit clean
The x86 assembly instructures for bit test-and-set, test-and-clear,
etc., interpret the bit number as a 32-bit signed number, which is
problematic in order to support filesystems > 8TB.
Added new inline functions (in C) to implement a
ext2fs_fast_set/clear_bit() that does not return the old value of the
bit, and use it for the fast block/bitmap functions.
Added a regression test suite to test the low-level bit operations
functions to make sure they work correctly.
Note that a bitmap can address 2**32 blocks requires 2**29 bytes, or
512 megabytes. E2fsck requires 3 (and possibly 4 block bitmaps),
which means that the block bitmaps can require 2GB all by themselves,
and this doesn't include the 4 or 5 inode bitmaps (which assuming an
8k inode ratio, will take 256 megabytes each). This means that it's
more likely that a filesystem check of a filesystem greater than 2**31
blocks will fail if the e2fsck is dynamically linked (since the shared
libraries can consume a substantial portion of the 3GB address space
available to x86 userspace applications). Even if e2fsck is
statically linked, for a badly damaged filesystem, which may require
additional block and/or inode bitmaps, I am not sure e2fsck will
succeed in all cases.
Theodore Ts'o [Sun, 19 Mar 2006 20:26:26 +0000 (15:26 -0500)]
Prevent error messages to stderr caused by libblkid calling libdevmapper
Make the libdevmapper fail quietly if blkid is called without root
privileges or the kernel does not include device mapper support.
(What is the device mapper _library_ doing writing to stderr, anyway?)
Theodore Ts'o [Sun, 19 Mar 2006 01:03:47 +0000 (20:03 -0500)]
Change resize2fs open modes for mounted and unmounted filesystems
If the filesystem is mounted, open it in read-only mode since the userspace
program should not try to modify it directly. If the filesystem is not mounted,
open it in exclusive mode to avoid potential problems (such as someone
trying to mount the filesystem while it is being resized).
Theodore Ts'o [Sun, 19 Mar 2006 01:01:09 +0000 (20:01 -0500)]
Change e2fsck to open non-mounted filesystems in exclusive mode
Thanks to Andreas Dilger for this idea. If the filesystem is not mounted,
e2fsck will open it in exclusive mode to prevent the a confused/careless
system administrator from mounting the filesystem while the filesystem
check is taking place, which could cause all sorts of problems.
Theodore Ts'o [Sat, 18 Mar 2006 23:57:44 +0000 (18:57 -0500)]
Add IO_FLAG_EXCLUSIVE flag to io_channel abstraction
Add a new io_channel open flag, IO_FLAG_EXCLUSIVE,which requests that
the device be opened in exclusive (O_EXCL) mode. Add support to the unix_io
implementation for this flag.
Theodore Ts'o [Mon, 13 Mar 2006 04:25:15 +0000 (23:25 -0500)]
Fix blkid's last verification logic to work when the system clock is insane
Users have reported problems on newly installed systems when the
Macintosh's system clock battery is dead and the hardware clock is
returning a date of 1904. Turns out there were some bugs in handling
dates before the Unix epoch.
Addresses Red Hat Bug: #182188
probe.c (blkid_verify): Fix the bid_time sanity checking logic,
so that if last verification time is more recent than the
current time, or the comparison between the last
verification time and the current time causes an overflow,
a device verification will take place.
devname.c (blkid_get_dev): Set the initial bid_time to be
INT_MIN, to guarantee that blkid_verify will always be run
even when the system clock is insane.
dev.c (blkid_debug_dump_dev), read.c (debug_dump_dev),
save.c (save_dev): Fix the printf format for dev->bid_time
to match the fact that it is an signed type.
Theodore Ts'o [Sat, 11 Mar 2006 02:39:40 +0000 (21:39 -0500)]
Fix the subdirs logic so it works with GNU make 3.80
The previous fix which fixed the problem with GNU make 3.81 building
all of the library object files caused GNU make 3.80 fail because the
subdirectories (such as elfshared) were not getting created. This fix
should allow the Makefiles to work with both GNU make 3.80 and GNU
make 3.81.
Theodore Ts'o [Wed, 8 Mar 2006 23:22:06 +0000 (18:22 -0500)]
Fix debugfs's icheck to correctly report the owner of an EA block
Hello Ted,
here is a minor fixup with debugfs "icheck" finding a block in an EA.
It was reporting the inode number as one too low because it was set
after the EA check is done.
From: Andreas Dilger <adilger@clusterfs.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Karel Zak [Wed, 8 Mar 2006 19:17:28 +0000 (14:17 -0500)]
Add device-mapper support to the blkid library
On systems where is multi-path storage device is problem with duplicated
filesystems. The solution is select "the best" device. This is possible
by device-mapper library.
Short quotation from RH bugzilla:
With my patch, all dm devices remains in libblkid cache.
Only the top level dm devices are given high priority
and more appropriate node names (i.e. /dev/mapper/*) are used.
For example, if we have linear mapped dm device "ov1" over
dm device "disk1p3" which is multipath mapped to /dev/sdd3 and /dev/sdh3:
# dmsetup.static ls --tree
ov1 (253:5) <-- /dev/mapper/ov1 or /dev/dm-5
`-disk1p3 (253:4) <-- /dev/mapper/disk1p3 or /dev/dm-4
`-disk1 (253:0)
|- (8:112) <-- /dev/sdh
`- (8:48) <-- /dev/sdd
Original version of blkid will show:
# ./orig/blkid -t LABEL=mpdisk1p3 -l
/dev/sdd3: LABEL="mpdisk1p3" ... TYPE="ext3"
With my patch, blkid will show:
# ./deptree/blkid -t LABEL=mpdisk1p3 -l
/dev/mapper/ov1: LABEL="mpdisk1p3" ... TYPE="ext3"
Theodore Ts'o [Sun, 29 Jan 2006 10:15:36 +0000 (05:15 -0500)]
Add a config option which controls whether fs checks are skipped when on battery
Whether fs checks are skipped when the system is running on battery can be
controlled by the new e2fsck.conf option defer_check_on_battery (this option
defaults to TRUE).
Theodore Ts'o [Sun, 29 Jan 2006 10:05:31 +0000 (05:05 -0500)]
Print an explanation when skipping a check due being on battery
On Sat, Jan 28, 2006 at 12:53:33PM -0600, Fredrick Knieper wrote:
> Package: e2fsprogs
> Version: 1.38+1.39-WIP-2005.12.31-1
>
> When running fsck at boot or when running e2fsck manually on a device,
> fsck will not check a filesystem based on the maximum mount count,
> unless a flag such as -f or -c is used to force the filesystem check.
What's happening is that when you run on battery, e2fsck will delay
running the filesystem check, on the assumption that it is better to
defer the check until some time in the future when your laptop is
running on AC mains again. This deferral is not infinite, however; if
the number of mounts exceeds twice the max mount counts, or if the
interval between checks exceeds twice the check interval, e2fsck will
force the check even though you are on battery.
I've changed the sources to print a message to make this more clear.
Theodore Ts'o [Thu, 5 Jan 2006 05:47:34 +0000 (00:47 -0500)]
Enhance profile library's parser to accept comments
This also changes syntax accepted by the profile parser. The value of
profile relations must not contain spaces unless it is quoted;
otherwise the parser will throw an error. Previously something like
this was allowed:
[liboptions]
test = foo bar
Now, the relation must be in double quotes in order to be valid, i.e.,
"foo bar".
Comments are allowed anywhere and can be started with either a ';' or
a '#' character. The only place where comments will not be intepreted
as beginning a comment is in a quoted string.
Theodore Ts'o [Sat, 31 Dec 2005 21:33:33 +0000 (16:33 -0500)]
Add e2fsck problem handling to be configurable
Add the ability for the e2fsck configuration file to override the
behaviour of e2fsck when a particular filesystem problem is
encountered. This allows reconnecting an inode to lost+found to not
stop the boot sequence, if a system administrator really badly wants
this behaviour for some specialized reason, for example.
Theodore Ts'o [Sat, 31 Dec 2005 06:11:06 +0000 (01:11 -0500)]
Move the blkid and uuidgen programs out of library packages and into e2fsprogs
Move the blkid and uuidgen binaries out of libblkid1 and libuuid1 and
into the e2fsprogs package to support soname transitions and
simulaneous installs of multiarch flavors to coexist. (It's not worth
creating two whole new packages for two separate binaries, so we just
fold them into e2fsprogs.) (Closes: #330737, #330736)
Theodore Ts'o [Sat, 31 Dec 2005 06:04:40 +0000 (01:04 -0500)]
Clarify chattr man page to make sure people realize limitations in the kernel
Add notes in chattr's man page to make sure the reader refers to the
BUGS AND LIMITATIONS section so that even an idiot will be able to see
that some of these attributes are not yet implemented. (Addresses
Debian Bug: #312515)
Theodore Ts'o [Sat, 31 Dec 2005 05:52:23 +0000 (00:52 -0500)]
Add allow_cancellation config option
If the e2fsck configuration file sets the allow_cancellation option to be
true, then if the filesystem does not have any known problems, and was
known to be cleanly unmounted, then let e2fsck exit with a status code of 0
instead of 32 (FSCK_CANCELED) so that the bootup scripts will continue
without stopping the boot. (Addresses Debian Bug: #150295)
Theodore Ts'o [Sat, 31 Dec 2005 04:57:32 +0000 (23:57 -0500)]
Add the profile library code to e2fsck
The profile library was originally written by Theodore Ts'o in 1995
for use in the MIT Kerberos v5 library. It has been
modified/enhanced/bug-fixed over time by other members of the MIT
Kerberos team. This version was originally taken from the Kerberos
v5 distribution, version 1.4.2, and radically simplified for use in
e2fsprogs. (Support for locking for multi-threaded operations,
being able to modify and update the configuration file
programmatically, and Mac/Windows portability have been removed.
It has been folded into a single C source file to make it easier to
fold into an application program.)
Theodore Ts'o [Fri, 30 Dec 2005 03:45:29 +0000 (22:45 -0500)]
Avoid needlessly recompilation of library objection files
Fixing the problem of parallel builds sometimes not creating the library
subdirectories caused library object files to get constantly recompiled.
Fix this by remaping how the Makefile subdirectories decide to create
the subdirectories.
Theodore Ts'o [Mon, 19 Dec 2005 05:02:47 +0000 (00:02 -0500)]
Automatically fix superblock times in the future
If the superblock last mount time or last write time is in the future, fix
this automatically if e2fsck is in preeen mode, since Debian's boot sequence
bogusly doesn't set the time correctly until potentially very late in the bootup
process, and this can cause false positives that will cause users' systems
to fail to booting. (Addresses Debian Bugs #343662 and #343645)
Theodore Ts'o [Mon, 19 Dec 2005 04:33:15 +0000 (23:33 -0500)]
Newer versions of debian-buildpackage are much pickier about spacing and
formatting of the Debian changelog fix. Fix very old entries that had invalid
spacing.
Theodore Ts'o [Sun, 11 Dec 2005 03:33:25 +0000 (22:33 -0500)]
Use $(LDFLAGS) when generating shared libraries
Makefile.elf-lib, Makefile.solaris-lib: Add $(LDFLAGS) to the command line
argument when generating the shared library, to allow cross-compile
and other builds that might need to specify -L paths to needed
libraries.
Theodore Ts'o [Sat, 10 Dec 2005 00:16:40 +0000 (19:16 -0500)]
Fix bogus spaces before '!' and '?' characters in unused programs.
On Mon, Oct 31, 2005 at 01:23:53PM +0000, Martin Michlmayr wrote:
> Package: e2fsprogs
> Version: 1.38-2
> Severity: minor
>
> e2fsprogs isn't consistent in its use of spaces before an exclamation
> mark. The patch below fixed this by removing some spaces.
> (Interestingly, I couldn't find the error message in the sources where
> I noticed this inconsistency, namely "group descriptors corrupted !").
Patch applied, but none of the source files you touched are actually
compiled in e2fsprogs, and most of them weren't written by me. :-)
Theodore Ts'o [Fri, 9 Dec 2005 23:18:06 +0000 (18:18 -0500)]
Clarify the e2fsck man page regarding the -c option
A user was confused about whether or not e2fsck -c performed a destructive
test on the filesystem, since it stated that -cc resulted in a non-destructive
read/write test. Clarify that -c does a read/only test.
Theodore Ts'o [Mon, 21 Nov 2005 05:04:31 +0000 (00:04 -0500)]
Fix gcc compilation on sparc architectures in bitops.h
We no longer have the sparc assembly code in the header file any more, so we
shouldn't set _EXT2_HAVE_AS_BITOPS_. This would break compiles on the sparc
architectures when using gcc.