DH_CLIDEPS(1)

πŸ“¦
version 0.11 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

✨ DH_CLIDEPS ✨

okay bestie, welcome to dh_clideps(1), straight out of the Debhelper for CLI (Common Language Infrastructure) manual πŸ’– this is the little icon that figures out your CLI (.NET) dependencies, and honestly? she's doing the most so you don't have to 🫢


🌸 NAME 🌸

dh_clideps β€” she calculates your CLI (.NET) dependencies πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

dh_clideps [debhelper options]

πŸ‘‘ DESCRIPTION πŸ‘‘

So dh_clideps is a debhelper program, and her whole job is generating the ${cli:Depends} substitutions and dropping them into your substvars files. no cap, that's the assignment πŸŽ€

She goes snooping through the .dll/.exe and .config files in your package, and she uses the embedded dependency info to cook up a dependency string on assembly and shared libs packages β€” version ranges included, exactly as declared by the shlibs/clilibs files of the packages being used. And the dependency on a certain CLR (Common Language Runtime) version? yeah, that also gets added to the final variable. queen behavior πŸ’…

⚠️ Note: the dependencies on shared libraries may not be resolved correctly if there are no .config files associated with the .exe/.dll file that refers to the particular shared library (by its SONAME). like, she's trying her best but she needs the receipts 😭

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


πŸ’– OPTIONS πŸ’–

  • -d β€” Attempt to predict and avoid duplicates that may show up if you package both native shared libraries and DLL assemblies in one package. The list of possibly-duplicating candidates is expected to live in the variable shlib:Depends from debian/package.substvars. it's giving "we already have that at home" πŸ™ˆ
  • -r β€” Don't set a strong versioned dependency on mono-runtime or other CLR packages. This one lets you specify a relaxed dependency on the VM/CLR by-hand in the control file, eg. "mono-runtime | cli-runtime". lowkey chill of you πŸ’œ
  • -ldirectory[:directory:directory:..] β€” Before mondis is run, MONO_GAC_PREFIX and MONO_PATH get set to the specified directory (or directories β€” separate them 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 ikdasm.

Note that the directory you give should be the complete or relative path to a directory that contains the library. See the 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. not her problem anymore, she's unbothered 🧚
  • --exclude-moduleref=moduleref β€” 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. iconic, honestly πŸŽ€

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.

  • internal-mono β€” Uses the mono runtime in . (used for bootstrapping mono packages) 🌈

⭐ EXAMPLES ⭐

Suppose 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

πŸ”₯ SEE ALSO πŸ”₯

  • debhelper(7)
  • This program is a part of cli-common-dev. 🫢

πŸ’œ AUTHOR πŸ’œ

Mirco Bauer <meebey@meebey.net>, Eduard Bloch <blade@debian.org>, partialy based on code from Brendan O'Dea <bod@debian.org> and Joey Hess <joeyh@debian.org>.


and that's the whole page bestie, we ate and left no crumbs πŸ’…βœ¨ this one's from perl v5.40.1, dated 2025-08-16 β€” go forth and resolve some dependencies, you've got this πŸ¦‹πŸŽ€πŸ’–

πŸ“¦ where this page comes from