d-shlibmove(1)

πŸ“¦
version 0.109build1 Β· 2 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– d-shlibmove β€” the d-shlibs manual's certified baddie πŸ’–

okay bestie, listen. this is d-shlibmove from the d-shlibs manual, section (1), and it is genuinely that girl when it comes to shuffling shared libraries around while you're building Debian packages. pull up a chair, we're doing this together 🫢


🌸 NAME 🌸

d-shlibmove β€” moves shared library files around during the Debian package creation process. yes, that's the whole job. it's giving moving crew but for .so files πŸ’…


✨ SYNOPSIS ✨

d-shlibmove [options] shared-library.so

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe: you call this program inside debian/rules as a glow-up replacement for dh_movefiles when you're building shared library packages. that's literally its whole reason for existing and it does it beautifully.

it also checks debian/control for validity, because someone has to be the responsible one in this friendship and apparently it's this binary. periodt.


πŸŽ€ OPTIONS πŸŽ€

  • --movedev [filename] [relative dir-path] β€” installs the file into the relative directory path inside the -dev package. the dir gets created with install -d, then the file gets moved. it's giving make yourself at home ✨
  • --moveshl [filename] [relative dir-path] β€” installs the file into the relative directory path inside the shared library runtime package. same deal: dir created with install -d, file moved. πŸ¦‹
  • --movedevdoc [filename] β€” installs the file into the documentation directory of the -dev package. dir created with install -d, file moved. docs girlies stay winning πŸ“š
Added in version 0.4
  • --extralib [shared-library.so] β€” installs the shared library in the same package as the main shared library. besties stick together, no cap πŸ’–
  • --multiarch β€” by default d-shlibmove installs the shared library and any extralibs into /usr/lib. add this flag and they go into /usr/lib/<architecture-tripplet> instead. multiarch era, we love to see it πŸ›οΈ
Added in version 0.48
  • --commit β€” by default d-shlibmove runs in dry-run mode, aka it's just practicing. add this flag to make the moving actually happen. this is the "stop manifesting, start doing" flag πŸ”₯
  • --suffix [suffix to add to shared library package] β€” adds a suffix to the shared library package. it's a workaround for when the binary interface to the package changed and some fixup to the Debian packaging needs to happen. we do a little patchwork πŸ’…
Added in version 0.3
  • --devsuffix [suffix to add to development package] β€” adds a suffix to the development package. this one's for making an incompatible development package. glow-up but make it breaking 🫠
  • --shlibs-local [current-version] β€” creates a debian/shlibs.local file to use, and you specify the current-version of the shared library package. you need to remove debian/shlibs.local yourself, because this only appends to it, it does not overwrite. read that again bestie, do not come crying to me 😭
Added in version 0.3
  • --devunversioned β€” installs into an unversioned development package. no numbers, no drama ✨
Added in version 0.42
  • --ignorelibdep β€” suppresses the shlib dependency. useful when it's dynamically resolved, e.g. using CDBS. sometimes you just gotta let it go πŸ™ˆ
Added in version 0.42
  • --c102 β€” adds the c102 suffix to package names, for the C++ ABI transition. iconic era honestly πŸ’€
Added in version 0.8
  • --ldbl β€” adds dbl suffix to package names.
Added in version 0.35
  • --v5 β€” adds v5 suffix to package names.
Added in version 0.61
  • --t64 β€” adds t64 suffix to package names.
Added in version 0.106
  • --include-a β€” installs the *.a files. this is the default behavior. archive files stay in the group chat πŸŽ€
Added in version 0.51
  • --exclude-a β€” avoids installing the *.a files. bye bestie πŸ‘‹
Added in version 0.51
  • --include-la β€” installs the *.la files. also the default behavior. libtool girlies rise 🌈
Added in version 0.45
  • --exclude-la β€” avoids installing the *.la files. not today, libtool 😌
Added in version 0.45
  • --override [override statement] β€” adds an overriding sed expression, and it looks like --override s/libshared1-dev/libshared-dev/. this expression is executed after the other rules. and yes, you can specify multiple --override flags. stack 'em, queen πŸ‘‘
Added in version 0.30

πŸ‘‘ EXIT CODE πŸ‘‘

  • returns 1 on error. sad girl hours 😭
  • returns 2 on dry-run. it was only rehearsing πŸ’…
  • returns 0 on success. slay ✨

πŸ’œ EXAMPLES πŸ’œ

here's a sample command-line of a hypothetical package installation. hypothetical!! do not run this thinking it's your package, bestie:

d-shlibmove --commit --movedev "debian/tmp/usr/include/*" usr/include
--extralib debian/tmp/usr/lib/libhomeman-pthread.so
debian/tmp/usr/lib/libhomeman.so

🌟 AUTHOR 🌟

Junichi Uekawa <dancer@debian.org> <dancer@netfort.gr.jp>

give them their flowers, fr fr 🌸


🧚 SEE ALSO 🧚

d-devlibdeps (1) β€” the other one in the friendship group, go say hi πŸ’–


okay that's the whole page, and now the cute sign-off: this little masterpiece lives under Debian GNU/Linux, dated 2002 May 3, and yeah, the header up top said d-shlibmove(1) and the manual is the d-shlibs manual β€” consider yourself fully briefed, bestie πŸ«Άβœ¨πŸ’…

πŸ“¦ where this page comes from