Raphael Hertzog [Sat, 8 Dec 2007 20:33:09 +0000 (21:33 +0100)]
Dpkg::Shlibs::find_library() tries harder to return the canonical name
When it finds a library in a directory which is just a symlink to another
directory that is also considered, remember the other directory name as
the canonical one. And uses the new canonpath() to also simplify path
names containing "/../".
dpkg-genchanges/dpkg-buildpackages: Add new -A option
Logical opposite of -B, will only build arch-indep
packages (dpkg-buildpackage), only include arch-indep
packages in the .changes file (dpkg-genchanges).
Copy the usr/share/doc directory to dpkg-dev and dselect (Instead
of using symlinks). The space requirements are minimal and adding
the needed dependencies to comply with policy would be way more
inconvenient.
Raphael Hertzog [Wed, 28 Nov 2007 14:44:32 +0000 (15:44 +0100)]
dpkg-gensymbols: override the check level with an environment variable
* scripts/dpkg-gensymbols.pl: The environment variable
DPKG_GENSYMBOLS_CHECK_LEVEL can override the level of checks made by
dpkg-gensymbols. This offers the possibility to unofficial ports to ignore
errors due to symbols files that do not correspond.
Raphael Hertzog [Wed, 28 Nov 2007 13:58:55 +0000 (14:58 +0100)]
dpkg-shlibdeps(1): expand manual page with explanations concerning failures
* scripts/dpkg-shlibdeps.pl: Harmonize a failure message.
* man/dpkg-shlibdeps.1: Provide explanations concerning the two
failures that dpkg-shlibdeps might generate. This is needed so
that maintainers have an idea of what to do to fix the problems.
Raphael Hertzog [Sun, 25 Nov 2007 15:54:20 +0000 (15:54 +0000)]
dpkg-shlibdeps: do not fail if it can't find unversioned libraries
Skip the check on symbols when some libs were not found because one
can not be sure that the symbols was not provided by the missing
library. Also improve the corresponding error message which is
downgraded to a warning for unversioned libraries.
Raphael Hertzog [Wed, 28 Nov 2007 09:33:53 +0000 (10:33 +0100)]
dpkg-shlibdeps: Always try the realpath of the lib as fallback to identify the associated package
* scripts/dpkg-shlibdeps.pl (find_packages): Make sure to always
return [''] for a miss in the 'dpkg -S' query.
* scripts/dpkg-shlibdeps.pl: Always try the realpath($lib) as
fallback to identify the package (even if it's not a symlink)
because due to broken RPATH we might get library filenames such as
"/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libssl.so.9.8"
which is not a symlink and which can still be simplified to
"/usr/lib/libssl.so.9.8" with realpath().
Raphael Hertzog [Fri, 23 Nov 2007 09:46:37 +0000 (10:46 +0100)]
dpkg-shlibdeps: add some cases where the lack of dependency information is ignored
Look for libs in the package's build tree even if that package doesn't
contain an shlibs file. Then don't complain about missing dependency
information if the lib is in the same package than the binary. Also ignore
it if the library is not versionned and can't have an shlibs file.
Guillem Jover [Fri, 23 Nov 2007 02:42:25 +0000 (04:42 +0200)]
Dpkg::Arch: Make get_host_arch and get_build_arch read from the environment
All scripts calling get_host_arch are expected to support getting the
value overriden by the environment when cross building. Except for
dpkg-architecture, which needs more fine grained control, and calls
directly the get_raw_ functions.
Raphael Hertzog [Thu, 22 Nov 2007 17:35:34 +0000 (18:35 +0100)]
dpkg-source: fix regex used to identify extension of .orig tarball
Regex special meta-characters (mainly like "+" in versions) embedded in $basename
made the regex fail which resulted in unwanted upgrade of source packages to
Format: 2.0.
Raphael Hertzog [Thu, 22 Nov 2007 11:22:14 +0000 (12:22 +0100)]
Dpkg::Shlibs: Always consider all paths from LD_LIBRARY_PATH
Paths listed in LD_LIBRARY_PATH were not added at the beginning of the search
path if they were part of the default search paths. Remove this restriction
so that it's possible to change the search order in default paths by using
this variable.
Raphael Hertzog [Wed, 21 Nov 2007 16:00:41 +0000 (17:00 +0100)]
Add new module Dpkg::Fields replacing parts of controllib.pl
New module containing 3 functions moved out of controllib.pl (capit(),
set_field_importance(), sort_by_field_importance()). Adapt all the scripts
accordingly.
Raphael Hertzog [Wed, 21 Nov 2007 10:53:19 +0000 (11:53 +0100)]
Add non-regression tests for the identification of public libraries and executables
Make sure that Dpkg::Shlibs::Objdump::Object::is_public_library() and is_executable()
work as expected for a private library (Pg.so of the libdb-pg-perl package), a public
library (libc6) and an executable (ls). Also fix some typo in those functions (urgh).
Raphael Hertzog [Mon, 19 Nov 2007 21:10:55 +0000 (22:10 +0100)]
Bug fix in Dpkg::Path::get_pkg_root_dir() and related changes in dpkg-shlibdeps
* scripts/Dpkg/Path.pm: Fix behaviour of get_pkg_root_dir() when there's
no DEBIAN subdirectory in none of the parent directories.
* scripts/dpkg-shlibdeps.pl: Handle undef values returned by
get_pkg_root_dir() and complain when it's likely to create a problem (when
a RPATH contains $ORIGIN and when the value of this variable can't be
determined because we don't know what is the root directory of the
temporary tree).