Provided by: gnustep-make_2.9.3-6_all bug

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)