This avoids lintian errors if we try to rebuild the package since
source.lintian-overrides ends up getting installed in
debian/source/usr/src/lintian/overrides/source, which then gets
dropped in the diff file.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The debugging packages will contain no debugging symbols (since they
are in the unstripped executables and libraries) but at least the
build won't crash.
Addresses-Debian-Bug: #627535
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Fix up the debian/copyright file so it contains the full information
of the licenses used by all of the libraries. Also use a single
copyright file for e2fsprogs and e2fslibs, to make sure they are kept
in sync.
Addresses-Debian-Bug: #614662
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This adds new APIs: ext2fs_flush2 and ext2fs_close2 which take an
extra 'int flags' parameter.
This allows us to pass in an EXT2_FLAG_FLUSH_NO_SYNC flag which avoids
fsync'ing the filesystem when closing it. For the case we have in
mind where we are just constructing a throwaway ext2 filesystem in a
file in order to boot a VM, this saves over 5 seconds during the boot
process and avoids many unnecessary disk writes.
Existing code using ext2fs_flush and ext2fs_close remains unaffected
by this change.
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Since the libquota library has namespace contamination issues, don't
build a shared library and link against it statically. Don't include
it as part of the Debian packages.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Enhance the debian build rules so it will create multiarch compliant
packages on those distributions that have support for it.
Also remove e2initrd-helper from the e2fsprogs package since no one
uses it any more.
Also update the debian policy standards version to 3.9.2.
Addresses-Debian-Bug: #632169
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
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>
The preinstall script checked for dpkg --asert-support-predepends,
which has been true since 1996. Also it removed configuration files
which haven't been around since well before Debian sarge, more than
two stable releases ago.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
According to the policy, UIDs and GIDs in the range 1-100 are reserved
to be globally allocated by the base-passwd package. The libuuid1
postinstall script passes in UID_MIN=1 and GID_MIN=1. The useradd and
groupadd commands seems to skip UID's between 1 and 100 anyway, but
it's confusing, so we should pass in UID_MIN=100 and GID_MIN=100 for
clarity and in case useradd and groupadd ever changes their behaviour.
Addresses-Debian-Bug: #466929
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Also removed the --enable-dynamic-static configure option.
Unfortunately the usefulness of building e2fsck statically is gone on
all modern distributions, since everything else on the system is built
dynamically these days. In fact on some distributions it is almost
impossible to build programs statically any more.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The groupadd and useradd commands come from passwd, which is not
Essential: yes, so a Depends is needed.
Addresses-Debian-Bug: #459403
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Fedora and Red Hat puts the devmapper library in different locations
compared to Debian, so we use pkg-config. Unfortunately Debian's
devmapper.pc file is buggy (See Debian Bug #390243), so we have to
work around it.
Historically, e2fsprogs has tried not to depend on pkg-config, since
its answers are so often **wrong** (the Debian bug has been ignored
for over a year), so I'm hoping I'm not going to regret this.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The old document ID, com_err, used an illegal character ('_'); change
it to be comerr-manual to be conformant with the doc-base requirements.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The adduser package is 'important', and while it is often installed,
we can't guarantee that it will always be there. A required package,
or a package which is dragged in by a required package, such as
libuuid1, shouldn't depend on an 'important' package since that would
implicitly make it be required, which shouldn't be done unless
absolutely necesary.
So we replace the call to adduser with the lower-level useradd and
groupadd programs. They are part of the passwd package, which is
required to be on all Debian systems.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Some people are still running ancient Debian distributions, such as
woody, with a 2.4 kernel, and they want to be able to use the
e2fsck-static package on backlevel systems.
It turns out that we can't just statically link against glibc anymore,
since glibc now uses thread-local storage everywhere. So we now build
e2fsck-static using dietlibc.
Addresses-Debian-Bug: #458017
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/var/run can get completely removed at reboot, and uuidd doesn't have
permissions to recreate /var/run/uuidd. So instead use
/var/lib/libuuidd for the unix domain socket and pid files.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Also store the clock sequence information in a state file in
/var/lib/misc/uuid-clock so that if the time goes backwards the clock
sequence counter can get bumped. This allows us to completely
correctly generate time-based (version 1) UUID's according to the
algorithm specified RFC 4122.
Addresses-Sourceforge-Bug: #1529672
Addresses-Red-Hat-Bugzilla: #233471
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The Ubuntu init scripts don't properly set the system time correctly
from hardware clock if the hardware clock is configured to tick local
time instead of GMT time.
Work around this as best as we can by providing an option in
/etc/e2fsck.conf which can be set on Ubuntu systems:
[options]
buggy_init_scripts = 1
Addresses-Debian-Bug: #441093
Addresses-Ubuntu-Bug: #131201
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
When building the e2fsprogs dpkg's, the dh_strip command emits a large
number of error messages caused by the permissions not being right. So
run dh_fixperms before running dh_strip.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Documentation about UUID's is available in enough places, and it's
awkward to deal with debian-legal's insanities. So I'm caving in the
"more-lunatic-than-RMS" wing of Debian by removing RFC-4122 so we don't
have do the dfsg tarball. Also remove the rule that only tried to
install RFC-4122 on Ubuntu, since Ubuntu seems to want to fetch
e2fsprogs exclusively from Debian.
Addresses Debian Bug: #407107
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Since I am the upstream maintainer the -WIP langauge is superflous, so
remove it.
Addresses Debian Bug: #415560
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
From: Frans Pop <elendil@planet.nl>
Please apply the patch below with your next upload of e2fsprogs.
It removes Provides/Replaces: in the udebs which are no longer needed now
that udeb library dependencies are generated correctly. This has been the
case for a while now, but we've postponed this cleanup until after the
Etch release.
Addresses Debian Bug: #419605
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Add dependency to account for the new blkid function blkid_probe_all_new()
was added to e2fsprogs 1.39. The lack of this versioned dependency
caused a failure in rpc.mountd as detailed in Debian Bug #413057.
Addresses Debian Bug: #413208
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The e2fsprogs and kernel implementation of directory hash tree has a
bug which causes the implementation to be dependent on whether
characters are signed or unsigned. Platforms such as the PowerPC,
Arm, and S/390 have signed characters by default, which means that
hash directories on those systems are incompatible with hash
directories on other systems, such as the x86.
To fix this we add a new flags field to the superblock, and define two
new bits in that field to indicate whether or not the directory should
be signed or unsigned. If the bits are not set, e2fsck and fixed
kernels will set them to the signed/unsigned value of the currently
running platform, and then respect those bits when calculating the
directory hash. This allows compatibility with current filesystems,
as well as allowing cross-architectural compatibility.
Addresses Debian Bug: #389772
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Remove I-D because of DFSG license Nazi's.
Make e2fsck and uuid-dev have its own /usr/share/doc directories, and make
the e2fsck-static package not depend on the e2fsprogs package.
Addresses Debian Bug: #383521
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Recent glibc's no longer accept LD_ASSUME_KERNEL=2.4; this must be LD_ASSUME_KERNEL=2.4.1. Also, only set LD_ASSUME_KERNEL if we
are not using a 2.4 kernel (and are presumably using something newer)
Addresses Debian Bug: #364516
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Package: e2fsprogs
Version: 1.38+1.39-WIP-2005.12.31-1
Severity: wishlist
Tags: patch, d-i
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.
Addresses Debian Bug: #356293
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
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)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>