Provided by: gnustep-make_2.9.3-6_all 

NAME
dh_gnustep - perform various actions for GNUstep packages
SYNOPSIS
dh_gnustep [debhelper options] [--app] [--appsupport] [--bundle] [--bundle-dir=directory] [--bug-script]
[--game] [--move-to=package] [--no-cleanup] [--no-move]
DESCRIPTION
dh_gnustep is a program based on debhelper(7) that is responsible for doing GNUstep-specific
modifications, such as moving files in the GNUstep hierarchy to Filesystem Hierarchy Standard
(FHS)-compliant locations. It also adds bug-script symlinks for GNUstep applications, removes some build
system artifacts and adds additional dependendcies to packages that need it.
For brevity and because the GNUstep directories discussed are fairly long and cause readability issues
when this manpage is being displayed on a typical terminal, the standard GNUstep variables are used as
placeholders as follows:
GNUSTEP_SYSTEM_LIBRARY
/usr/lib/${DEB_HOST_MULTIARCH}/GNUstep
GNUSTEP_SYSTEM_HEADERS
/usr/include/${DEB_HOST_MULTIARCH}/GNUstep
GNUSTEP_SYSTEM_APPS
/usr/lib/${DEB_HOST_MULTIARCH}/GNUstep/Applications
GNUSTEP_SYSTEM_APPLICATION_SUPPORT
/usr/lib/${DEB_HOST_MULTIARCH}/GNUstep/ApplicationSupport
GNUSTEP_SYSTEM_BUNDLES
/usr/lib/${DEB_HOST_MULTIARCH}/GNUstep/Bundles
dh_gnustep must be run after dh_bugfiles(1) but before dh_link(1). Normally you would use an
"override_dh_link" target but you should remember to invoke dh_link(1) as the last command in the recipe.
This is mandatory so that the created links are made policy-compliant. Using the
"execute_before_dh_link" target avoids this extra step. This program makes the following changes (all
move operations can be cancelled with the --no-move option):
arch-indep directories:
Moves architecture-independent directories in GNUSTEP_SYSTEM_LIBRARY to /usr/share.
library resources:
Moves library resources (GNUSTEP_SYSTEM_LIBRARY/Libraries) to /usr/share/GNUstep/Libraries.
frameworks:
Moves framework headers to GNUSTEP_SYSTEM_HEADERS/Frameworks and framework resources to
/usr/share/GNUstep/Frameworks.
applications:
Moves application resource bundles to /usr/share/GNUstep. This is not done by default and requires
specifying the --app option.
application support:
Moves application support (GNUSTEP_SYSTEM_APPLICATION_SUPPORT) bundles' resources to
/usr/share/GNUstep. This is not done by default and requires specifying the --appsupport option.
bundles:
Moves bundles' (by default at GNUSTEP_SYSTEM_BUNDLES) resources to /usr/share/GNUstep. This is not
done by default and requires specifying the --bundle option. The --bundle-dir option can be used for
alternative non-standard directories.
bug-script symlinks:
By default, dh_gnustep will install a bug-script symlink for any package with a name ending with
".app", pointing to /usr/share/bug/gnustep-back-common, so that the system and user GNUstep backends
are reported as package-specific information to the BTS when submitting bugs. It will also add the
appropriate dependency (via the ${misc:Depends} substitution variable).
Note that dh_gnustep will not handle any other bug files and it expects dh_bugfiles(1) to have
completed its job in order to handle the case when the bug-script symlink must be installed as
/usr/share/bug/package/script (when there are bug-control or bug-presubj files). If an existing bug
script is detected, dh_gnustep will emit a warning as a package can have only one bug-script file.
In such situations the only solution is to integrate the contents of
/usr/share/bug/gnustep-back-common into the existing script.
build system artifacts:
By default, dh_gnustep will delete stamp.make files which are created and (unfortunately) installed
by gnustep-make for many project types. Likewise, it will delete dependencies files created and
installed for GNUstep documentation projects. The number and type of the deleted files are recorded
in the build log if DH_QUIET is not set.
additional dependencies:
For packages providing files in either GNUSTEP_SYSTEM_LIBRARY or GNUSTEP_SYSTEM_HEADERS, dh_gnustep
will automatically add the necessary dependency for the multiarch layout (via the ${misc:Depends}
substitution variable).
OPTIONS
dh_gnustep accepts the common debhelper(7) options, and some specific ones. If you use any of the
options below, make sure to build-depend on gnustep-make (>= 2.9.2-2) if that version is not already
satisfied in the current stable/oldstable release. Some options are implemented in subsequent releases,
as documented below.
--app
Move "Resources", i.e. the resource bundle of a GNUstep application
(GNUSTEP_SYSTEM_APPS/Foo.app/Resources) to the architecture-independent /usr/share/GNUstep/Foo.app
and make the necessary symlink. The automatically generated .desktop file is deleted. If the binary
package contains more than one app, they are processed independently.
Care shhould be taken when using this option because some apps contain architecture-dependent files
in their resource bundle. Another important point to pay attention to: if this is an existing
package which does not have its resources moved to /usr/share, a maintscript is required because dpkg
will not switch a directory to a symlink (and vice-versa). dh_gnustep does not handle this, see
dpkg-maintscript-helper(1).
This option is incompatible with --no-move and for multi-binary packages sometimes should be used
with the appropriate -p option.
--appsupport
Move the "Resources" directories of all bundles found in GNUSTEP_SYSTEM_APPLICATION_SUPPORT to
/usr/share, as subdirectories to the parent directory. If the package ships several bundles under
GNUSTEP_SYSTEM_APPLICATION_SUPPORT/Palettes, they are moved as subdirectories to
/usr/share/GNUstep/Palettes.
Note that bundles' resources sometimes contain architecture-dependent files in which case the best
approach is to move the architecture-independent files manually.
This option was introduced in gnustep-make/2.9.2-3 and like --app it is incompatible with --no-move.
--bundle
--bundle-dir=directory
Move the "Resources" directory of all bundles found in GNUSTEP_SYSTEM_BUNDLES (or an alternative
directory under GNUSTEP_SYSTEM_LIBRARY if the --bundle-dir option is specified) to /usr/share. If
the package installs bundles in a subdirectory, the same subdirectory will be created under
/usr/share/GNUstep.
This option was introduced in gnustep-make/2.9.2-4 and it is incompatible with --no-move.
Furthermore, --bundle and --bundle-dir are mutually exclusive. If the package installs bundles in
the standard Bundles directory and in another non-standard directory, you'll have to run dh_gnustep
twice with different arguments if you need to move all of the resource bundles.
--bug-script
Install bug-script symlink for the package even if its name does not end with ".app". Typically this
should be done for apps which are installed for some reason with tools or other stuff in a package
with a different name (such as gnustep-examples or gnustep-dl2). It can also be done for GUI
bundles, themes, palettes, etc. You probably want to use the -p option as well, otherwise dh_gnustep
will add bug script symlinks for all binary packages.
--game
This option must be used together with --app. It does everything that --app does as described above,
and additionally moves the symlink to the executable from /usr/bin to /usr/games. If /usr/bin is
found empty afterwards, the directory is deleted.
--move-to=package
This option must be used together with --app, --appsupport or --bundle/--bundle-dir (or any kind of
combination of these options). If --app is specified, move the resource bundle of an application to
another architecture-independent package. If --appsupport is given, move the "Resources" directories
of all bundles found in GNUSTEP_SYSTEM_APPLICATION_SUPPORT to /usr/share/GNUstep in the specified
package. If --bundle is specified, move the "Resources" directories of all bundles in
GNUSTEP_SYSTEM_BUNDLES (or an alternative directory if --bundle-dir is used) to /usr/share/GNUstep in
the specified package.
If --app, --appsupport and --bundle are used together, all resource bundles are moved to the package
specified by the option's argument, there is no way to split them in different packages. The current
implementation will handle more than one app per binary package but it will fail with a multi-binary
source package containing more than one ".app" binary package. Likewise, if the package contains
more than one ApplicationSupport directory, they will be processed independently as expected but the
build is likely to fail if they are in different binary packages.
Use with caution; see the EXAMPLES section for working examples.
--no-cleanup
Do not delete stamp.make and dependencies files.
--no-move
Do not perform any move operations. Setting the DEB_GNUSTEP_NO_MOVE environment variable to a non-
empty, non-zero value has the same effect.
EXAMPLES
execute_before_dh_link:
dh_gnustep -pgnustep-dl2 --no-move --bug-script
dh_gnustep --remaining-packages
Do not move any files for the gnustep-dl2 package (as that's already handled manually) but install a bug-
script symlink because the package contains an application and a Gorm palette.
execute_before_dh_link:
dh_gnustep --app --move-to=lynkeos.app-common
Move the lynkeos.app resource bundle to the architecture-independent package lynkeos.app-common.
override_dh_link:
dh_gnustep --app --game
dh_link
Move the app's resource bundle to /usr/share and the symlink to the executable from /usr/bin to
/user/games. Additionally, assuming the binary package name ends with ".app", create a bug-script
symlink pointing to /usr/share/bug/gnustep-back-common. Finally, delete the stamp.make file from the app
bundle.
execute_before_dh_link:
ifneq (,$(filter gnustep-gui-runtime,$(shell dh_listpackages)))
dh_gnustep -pgnustep-gui-runtime --app \
--bundle-dir=ColorPickers --move-to=gnustep-gui-common
dh_gnustep --remaining-packages
else
dh_gnustep --app --bundle-dir=ColorPickers \
--move-to=gnustep-gui-common
endif
Move the resource bundles of two apps and the resources of all ColorPickers' bundles to /usr/share in the
gnustep-gui-common package. Note that dh_gnustep will automatically figure out that the package they are
being moved from is gnustep-gui-runtime and there is no need to use debhelper's -p option. The
conditional is only necessary to support full builds so that the symlinks are created in the gnustep-gui-
runtime package.
BUGS
Should implement -X option.
Should do something with Java classes -- make a jar file and move from Library/Libraries/Java to
/usr/share/java -- to comply with Java policy.
CONFORMS TO
Debian Policy, version 4.7.0
FHS, version 3.0
Multiarch specification, <https://wiki.ubuntu.com/MultiarchSpec>
SEE ALSO
debhelper(7), dh_link(1), dh_bugfiles(1)
This program is not part of debhelper.
AUTHORS
Hubert Chan <uhoreg@debian.org>
Yavor Doganov <yavor@gnu.org>
perl v5.40.1 2025-03-05 DH_GNUSTEP(1)