dh_clideps(1) calculates CLI (.NET) dependencies


dh_clideps [debhelper options]


dh_clideps is a debhelper program that is responsible for generating the ${cli:Depends} substitutions and adding them to substvars files.

The program will look at .dll/.exe and .config files in your package, and will use the embedded dependency information to generate a dependency string on assembly and shared libs packages, including the setting of version ranges (as declared by the shlibs/clilibs files of the used packages). The dependency on a certain CLR (Common Language Runtime) version will be also added to the final variable.

Note: the dependencies on shared libraries may be not resolved correctly if there are no .config files associated with the the .exe/.dll file which refers to the particular shared library (by its SONAME).

If you use this program, your package should build-depend on cli-common-dev (>= 0.4.0).


Attempt to predict and avoid duplicates that may appear if you package both, native shared libraries and DLL assemblies in one package. The list of possibly duplicating candidates is expected to be in the variable shlib:Depends from debian/package.substvars.
Don't set a strong versioned dependency on mono-runtime or other CLR packages. This option can be used to specify a relaxed dependency on the VM/CLR by-hand in the control file, eg. ``mono-runtime | cli-runtime''.
Before mondis is run, MONO_GAC_PREFIX and MONO_PATH are set to the specified directory (or directories --- separate with colons). This is useful for multi-binary packages where a library is built in one package and another package contains binaries linked against said library. Relative paths will be made absolute for the benefit of monodis.

Note that the directory given should be the complete or relative path to a directory that contains the library. See example below.

-Xpath --exclude=path
Paths to exclude from the .dll/.exe search. Assemblies in these paths or their subdirectories will not be searched for dependencies, and assemblies missing references will not cause dh_clideps to fail.
ModuleRef to exclude from dependency resolution. dh_clideps will not attempt to resolve dependencies of these ModuleRefs. In particular, dh_clideps will not fail if these modulerefs are unresolvable.

May be specified multiple times. Each time it excludes a new ModuleRef.

ModuleRefs to be excluded can be optionally prefixed with ``i:'' to specify a case-insensitive match.

If foo is excluded, both foo and foo.dll will be considered when matching the exclude.

Uses the mono runtime in . (used for bootstrapping mono packages)


Suppose that your source package produces libfoo1.0-cil and libbar1.0-cil binary packages. In your rules file, first run dh_makeclilibs, then dh_clideps:
  (MONO_GAC_PREFIX example)
  dh_makeclilibs -V
  dh_clideps -l debian/libfoo1.0-cil/usr:debian/libbar1.0-cil/usr or
  (MONO_PATH example)
  dh_clideps -l debian/foo-application/usr/lib/foo-application or
  (MONO_GAC_PREFIX example)
  dh_clideps -l debian/tmp/usr

Suppose your source package libquux1.0-cil also ships some examples in /usr/share, and you don't want to pull in those dependencies.
  dh_clideps -X/usr/share

Suppose your source package has a ModuleRef on libbaz but works correctly without it. Excluding this ModuleRef will prevent dh_clideps from adding a package dependency or failing if the libbaz dependency is unresolvable.
  dh_clideps --exclude-moduleref=libbaz


Mirco Bauer <[email protected]>, Eduard Bloch <[email protected]>, partialy based on code from Brendan O'Dea <[email protected]> and Joey Hess <[email protected]>.