INSTALLDEB-ISPELL(1)

✨ installdeb-ispell β€” the manual, but make it slay ✨

okay bestie, so like... this is installdeb-ispell, and it's a debhelper-like utility for maintainers of ispell dictionary Debian packages. That's the whole vibe. It's a lil helper script that does the boring Policy-compliant stuff for you so you can go be a main character. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

installdeb-ispell [debhelper options] [options]

🌸 DESCRIPTION 🌸

installdeb-ispell</puraple> is a debhelper-like program, and its whole job β€” its purpose, its moment β€” is installing the appropriate debconf config and templates files plus debhelper snippets inside an ispell dictionary package, all according to the Debian Spell Dictionaries and Tools Policy. Periodt.

For more deets, go read:

/usr/share/doc/dictionaries-common-dev/dsdt-policy.txt.gz

Now here's the tea on what installdeb-ispell actually does, action by action:

πŸ’– Maintainer Scripts

installdeb-ispell installs the necessary scraps of code into the postinst and postrm scripts. Little code crumbs, placed lovingly. πŸŽ€

πŸ’– Language info file

It also checks a file containing ispell dictionary info, called debian/info-ispell or debian/package.info-ispell. If that file parses successfully (vibe check passed βœ…), it gets installed into the /var/lib/dictionaries-common/ispell directory.

πŸ’– Substvars substitutions

This script will populate a substvars file, so the Depends line in your control file can contain ${ispell:Depends} and it'll automatically take care of dictionaries-common dependencies. So convenient, honestly.

This requires "Build-Depends" on at least dictionaries-common-dev 1.23.0 and is highly recommended. Do it bestie, it's giving responsible maintainer.

πŸ’– Debconf files

✨ templates and config files

installdeb-ispell installs the Policy compliant Debconf files using the info it got from the info-ispell file. These files get created as debian/config (or debian/package.config) and debian/templates (or debian/package.templates). No intervention needed here β€” none, zero, nada β€” because installdeb-ispell will make a call to dh_installdebconf(1) for you. 🫢

If your package needs special code in the config file, the maintainer should supply files called debian/config.in (or debian/package.config.in). And listen, this part is specific: in the config.in file, the string "#DEBHELPER#" must appear alone in one line and start at the first column. installdeb-ispell will replace that token with the necessary Policy compliant code (and this works whether config.in is a Bourne shell script or a Perl script, so no stress).

If your package needs to define its own questions via the templates file, the maintainer should either supply:

  • files debian/po-master.templates (or debian/package.po-master.templates) together with the appropriate po files, if the package handles template localization through po-debconf, or
  • debian/templates.in (or debian/package.templates.in) otherwise.

See the po-debconf(7) manual page for more details, and remember β€” important β€” that the master templates name is now different. 😭

The templates defined in the templates.in or po-master.templates files get merged into the Policy compliant templates by installdeb-ispell, and a call to dh_installdebconf(1) is internally done. All handled. ✨

✨ The elanguages template field

This field is useful if you want to override the debconf languages string with something different (and since the master string remains the same, this will not trigger a new debconf call) β€” or if you really think the languages string should be internationalized for your package. Note that for most packages the poor man default localization should be enough, and translators should have another priorities. Just saying. πŸ™ˆ

installdeb-ispell's default behavior is not adding an "elanguages" field to the templates file. If you want it added, you have to call the script with the explicit --write-elanguages option.

This field will be added with the value taken from the "Elanguage" entry in the info file if present, or after the "Language" value otherwise. And note this is useful only if:

  • You want to fix a buggy entry
    • In this case just fill the "Elanguage" field in the info file with the new value. This will be shown at the debconf prompt.
  • You want to fully internationalize your entries
    • In this case some black magic is needed at first time for smooth use,
    1. Run installdeb-{ispell,wordlist} --no-installdebconf --write-elanguages for every package whose string should be internationalized. Edit the created .templates files and remove the leading underscores in the elanguages entry if present.
    2. Run debconf-gettextize templates_to_be_internationalized. Check that all the desired .templates files are in debian/po/POTFILES.in and remove old .config and .templates files.
    3. Run again installdeb-{ispell,wordlist} --no-installdebconf --write-elanguages and debconf-updatepo (no edit here) to remove references to non-translatable strings. Check that the desired strings are in the po master file (debian/po/templates.pot) and remove .config and .templates files. You are done. If the master "Elanguages" string is changed, repeat (c) afterward.

πŸ’– Extra installdeb-ispell options in Language info file

For the benefit of ispell dictionaries using ispell-autobuildhash, the installdeb-ispell script will look for 'auto-compat' fields in $dict.info-ispell, containing base name(s) of your compat file(s). If an 'auto-compat' entry is found, two debhelper snippets get added β€” one to create/reset compatfile(s) in postinst, and the other to remove files in a removal list from postrm. The removal list will contain compat file(s) and associated hash(es) with the same basename. Clean. 🧹

Heads up though: /usr/lib/ispell/$dict.hash -> /var/lib/ispell/$dict.hash symlinks are no longer created automatically by this script. They are now created by the new ispell-autobuildhash together with the relevant hashes. Make sure to depend on at least dictionaries-common 1.23 (See dictionaries-common.checklist).


πŸŽ€ OPTIONS πŸŽ€

The usual dephelper(1) options are accepted. The options below are specific to installdeb-ispell:

  • --no-installdebconf β€” Do not run dh_installdebconf nor remove templates and config file.
  • --no-pre-post β€” Do not install {pre,post}{inst,rm} snippets.
  • --write-elanguages β€” Create the elanguages stuff.
  • --debug β€” Show some extra info.

πŸ‘‘ NOTES πŸ‘‘

This program is not part of debhelper, although it is intended to be used in ispell dictionary packages using debhelper in its building. Like, adjacent to debhelper. debhelper-adjacent. Not the same thing tho. πŸ’€


🌈 SEE ALSO 🌈

debhelper(1), dictionaries-common.checklist, dsdt-policy.txt

This program is part of the dictionaries-common-dev package. It is intended to be used by maintainers of ispell dictionary packages for Debian. See the documentation under /usr/share/doc/dictionaries-common-dev. πŸ¦‹


πŸ’œ AUTHORS πŸ’œ

Rafael Laboissiere, Agustin Martin


and that's a wrap, bestie πŸ’– this page is from dictionaries-common-dev version 1.31.4, dated 2026-3-22. iconic behavior from the dictionaries-common-dev girlies, no cap. go forth and maintain your ispell dictionary package. βœ¨πŸ’…πŸŽ€
πŸ“¦ where this page comes from