Cygport Reference Manual

### TABLE OF CONTENTS

- Postinstall

- Core X11 Fonts
- Freedesktop.org MIME
- GConf Schemas
- GdkPixbuf Loaders
- GTK+ Input Method Modules
- Icon Themes
- Python Bytecompiling
- TeX Live
- X Sessions
- Documentation Files

- DOCS
- HTMLDOCS
- PKG_DOCS

- Emacs Lisp
- Post-install and Pre-remove Scripts
- Shell Profile Files
- Man Pages
- Info Pages
- Perl Modules
- Game Data
- Empty Directories

- KEEPDIRS

- Strip Binaries
- Split Debugging Information
- Libtool Libraries

- KEEP_LA_FILES

- RESTRICT

## Postinstall

[ Top ] [ Chapter 11 ] [ Concepts ]

## Core X11 Fonts

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Font directories which are registered with a symlink in the X11 font catalogue (for use as server-side core fonts) will have the 'fonts.dir' and 'fonts.scale' files created automatically. Such packages require the 'mkfontdir' and 'mkfontscale' packages at build time.

## Freedesktop.org MIME

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Packages which include desktop menu entries with MimeType declarations, or additional definitions for the Shared MIME-Info database, will be cleaned up from update-desktop-database or update-mime-database commands mistakenly run in $D. The desktop-file-utils and shared-mime-info packages include perpetual postinstall scripts which handle their respective database caches.

## GConf Schemas

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Package postinstall and preremove scripts will be automatically generated to un/register GConf schemas into the system GConf database.

NOTE

Packages providing GConf schemas must require the GConf2 package.

SEE ALSO

RESTRICT

## GdkPixbuf Loaders

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Package postinstall scripts will be automatically generated to register GdkPixbuf loaders with the system GdkPixbuf loader cache.

NOTE

Packages providing GdkPixbuf loaders will always require libgdk_pixbuf2.0_0.

## GTK+ Input Method Modules

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Package postinstall scripts will be automatically generated to register GTK+ Input Method Modules with the system module cache.

NOTE

Packages providing GTK Input Method Modules will always require either libgtk2.0_0 or libgtk3_0, depending on which version of GTK+ it supports.

## Icon Themes

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Perpetual postinstall scripts will be automatically generated for packages providing an icon theme, and postinstall triggers for those adding additional icons for a given theme to update that icon theme's cache.

## Python Bytecompiling

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

All Python modules installed into the system site-packages directories (/usr/lib/pythonX.Y) are automatically byte-compiled.

## TeX Live

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Package postinstall and preremove scripts will be automatically generated for packages installing TeX files into the system TEXMF tree, which will update the ls-R databases, TeX font maps, and TeX format files.

NOTE

Packages providing TeX files must require the texlive-collection-basic package, and also the fontconfig package if OTF, TTF, or Type1 fonts are provided.

## X Sessions

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Package postinstall and preremove scripts will be automatically generated for packages which provide X sessions to manage Start Menu shortcuts which will launch the session.

NOTE

Packages providing X sessions must require the cygutils, dbus-x11, run, and xinit packages.

## Documentation Files

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Standard documentation files in $S will be automatically installed into $D/usr/share/doc/PN. Empty files will be skipped.

Any README in $C will be automatically installed into /usr/share/doc/Cygwin/ as $PN.README. Any PKG.README will be automatically installed into /usr/share/doc/Cygwin/ (where PKG is the name of a binary package).

SEE ALSO

RESTRICT

## DOCS

[ Top ] [ Documentation Files ] [ Variables ]

DESCRIPTION

A list of documentation files, relative to $S, to be installed. Note that most standard documentation files are installed automatically and do not need to specified here.

## HTMLDOCS

[ Top ] [ Documentation Files ] [ Variables ]

DESCRIPTION

A list of HTML documentation files, relative to $S, to be installed in the html subdirectory of the standard docdir.

## PKG_DOCS

[ Top ] [ Documentation Files ] [ Variables ]

DESCRIPTION

A list of documentation files, relative to $S, to be installed in a PKG-specific docdir and automatically included in the PKG subpackage. The PKG_DOCS name is descriptive rather than literal, where "PKG" should be substituted with the name of the binary package to whose contents the docs should be added. When a package contains a character which cannot be used in a shell variable name (namely '+', '-', and '.'), that character must be substituted with an underscore ('_'), e.g. libfoo_devel_DOCS for a libfoo-devel package.

NOTE

When using PKG_DOCS, usr/share/doc/PKG should not be included in the corresponding PKG_CONTENTS; the specified files will be added to the package automatically.

## Emacs Lisp

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Emacs Lisp files will be automatically byte-compiled if emacs is present.

## Post-install and Pre-remove Scripts

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Any postinstall.sh or $PN.postinstall in $C will be automatically appended to /etc/postinstall/$PN.sh. Any PKG.postinstall in $C will be automatically appended to /etc/postinstall/$PKG.sh (where PKG is the name of a binary package).

Likewise, any preremove.sh or $PN.preremove in $C will be automatically appended to /etc/preremove/$PN.sh. Any PKG.preremove in $C will be automatically appended to /etc/preremove/$PKG.sh

As they are appended, these scripts should be written as stubs, without the shebang header.

## Shell Profile Files

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Any profile.d.{sh,csh,fish} in $C will be automatically installed into /etc/profile.d/ as ${PN}.{sh,csh,fish}

## Man Pages

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

The following cleanup steps will occur if man pages are installed:

- Man page filenames with '::' will be renamed for compatibility with man(1).
- Man pages will be gzip-compressed.
- Man page symlinks will be fixed.

## Info Pages

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

The following cleanup steps will occur if info pages are installed:

- Info pages will be gzip-compressed.
- Errant info/dir files will be deleted.

SEE ALSO

RESTRICT

## Perl Modules

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

The following cleanup steps will occur if Perl module(s) are installed:

- The 'perllocal.pod' and '.packlist' files will be automatically deleted, as they are only of use to CPAN.
- If the module(s) were installed under the 'site_perl' tree (which they should not be if perl_compile is used), they will be relocated under the 'vendor_perl' tree.

## Game Data

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Game data installed into /var/games will be handled with make_etc_defaults.

## Empty Directories

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Empty directories will be removed automatically, unless marked for saving with keepdir or KEEPDIRS.

## KEEPDIRS

[ Top ] [ Empty Directories ] [ Variables ]

SYNOPSIS

      KEEPDIRS="DIRECTORY [DIRECTORY...]"

DESCRIPTION

The equivalent of calling keepdir on the given directories. This variable can be used for convenience to avoid defining a custom src_install solely in order to add a keepdir command.

## Strip Binaries

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Debug symbols in executables and shared libraries will be stripped automatically, except for executables containing bytecode which cannot be stripped.

SEE ALSO

RESTRICT

## Split Debugging Information

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Debug symbols stripped from executables and libraries are preserved as split debuginfo files, and sources referenced therein are automatically installed into a package-specific location. A PN-debuginfo package will be automatically created with split debugging symbols and source files when present; inclusion in PKG_NAMES and PKG_CONTENTS is not necessary.

SEE ALSO

RESTRICT

## Libtool Libraries

[ Top ] [ Postinstall ] [ Postinstall Steps ]

DESCRIPTION

Libtool libraries use .la ("libtool archive") files to represent the library in a cross-platform way during the build process. By default, these are installed alongside the library, in which they serve two possible purposes: to help lt_dlopen() (or sometimes g_module_open()) find the DLL, and to determine its dependencies when linking something else against it.

The following steps will occur automatically when libtool libraries are included in a package:

- files are checked to assure that all components have been installed
- static and import libraries are removed from modules
- DLLs from non-module libraries will be moved to $D/usr/bin or $D/$CROSS_BINDIR as appropriate.

## KEEP_LA_FILES

[ Top ] [ Libtool Libraries ] [ Variables ]

SYNOPSIS

      KEEP_LA_FILES=[all|module|shared|static|none]

DESCRIPTION

Most of the time, libtool library files are not truly necessary, in which case they end up just slowing down builds and sometimes even causing a module to be loaded twice. Therefore, many distributions have begun removing them from binary packages.

Whether and which .la files are removed during automatic postinstall is based on the value of this variable, which can be one of:

- none: deletes all .la files (the default behaviour)
- module: keep only those .la files for modules meant to be dlopen()ed
- shared: keep only those .la files for non-module shared libraries
- static: keep only those .la files for static-only libraries
- all: keep all of the above

Some suggested guidelines:

- If modules are to be loaded via libltdl or GModule, you may (but not always) need to set this to 'module'.
- If a shared library is meant to be a dlopen()ed module but is linked without -module, then 'shared' (or 'all') may be necessary in order for the DLL to be found.

## RESTRICT

[ Top ] [ Postinstall ] [ Variables ]

DESCRIPTION

List of automatic postinstall or packaging step(s) which should be skipped for this package, and restrictions on package use.

Supported values are:

- case-insensitive: do not build on case-insensitive filesystems.
- debuginfo: do not create a debuginfo subpackage.
- diff: do not generate a .src.patch file of changes made in $S.
- postinst-doc: do not install standard documentation files.
- postinst-gconf: do not create postinstall commands for GConf schemas.
- postinst-info: do not compress info documentation.
- strip: do not strip binaries.
- upload: do not allow uploading binary packages to cygwin.com.

Of these, "diff" is the only one that should be considered useful, e.g. with very large data-only packages which will have no useful diff. "debuginfo" is useful on a temporary, per-build basis to debug a package in the build tree (e.g. a noinst test package).

"upload" makes it safer for cygport to be used for building private packages.

If you find yourself using any of the others to work around cygport's default behaviour, in all likelyhood it is either a bug in cygport or in the .cygport file.