# # dblatex - Installer extensions for Debian # import os import glob import shutil class DebianInstaller: """ Adapt the setup tool installation to match debian specific rules. The first step is to adpat the paths, the second step to provide the required links. The known limitations: - The dblatex script assumes the install prefix is standard - The documentation is not installed - The latex packages are found only when installed in standard tex dirs """ def __init__(self, install_object): self.install_obj = install_object def adapt_paths(self): # Add debian-specific python modules to install self.install_obj.distribution.packages += ['dbtexmf.contrib', 'dbtexmf.contrib.debian'] self.install_obj.distribution.package_dir['dbtexmf.contrib'] = \ 'lib/contrib' # Which latex dirs to maintain under share texdirs = glob.glob("latex/*") tex_share = [] for _dir in texdirs: if not(os.path.basename(_dir) in ("contrib", "style", "misc")): tex_share.append(_dir) # Redefine the data install paths self.install_obj.distribution.data_files = \ [('share/dblatex/latex', tex_share), ('share/xml/docbook/stylesheet/dblatex', ['xsl']), ('share/texmf/tex/latex/dblatex', ['latex/contrib', 'latex/style', 'latex/misc']), ('share/man/man1', ['docs/manpage/dblatex.1.gz'])] def finalize(self): texdir = os.path.join(self.install_obj.install_data, "share/texmf/tex/latex/dblatex") # Add the links to the debian standard paths contrib_lnk = os.path.join(self.install_obj.install_data, 'share/dblatex/latex/contrib') xsl_lnk = os.path.join(self.install_obj.install_data, 'share/dblatex/xsl') if not(os.path.exists(contrib_lnk)): os.symlink("../../texmf/tex/latex/dblatex/contrib", contrib_lnk) if not(os.path.exists(xsl_lnk)): os.symlink("../xml/docbook/stylesheet/dblatex/xsl", xsl_lnk) # Remove useless latex packages or license files for _file in ("passivetex/LICENSE", "attachfile.sty", "bibtopic.sty", "enumitem.sty", "lastpage.sty", "ragged2e.sty"): os.remove("%s" % (os.path.join(texdir, "misc", _file))) # Overwrite the dblatex script with the debian specific one shutil.copy("lib/contrib/debian/dblatex", self.install_obj.install_scripts)