Provided by: gnustep-make_2.9.2-4_all bug

NAME

       dh_gnustep - perform GNUstep-specific actions for Debian 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 that is responsible for doing GNUstep-specific modifications,
       such as moving files in the GNUstep hierarchy within the System domain, rooted at /usr/lib/GNUstep, to
       Filesystem Hierarchy Standard (FHS)-compliant locations.  It also adds bug-script symlinks for GNUstep
       applications and removes some build system artifacts.

       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 to /usr/share.

       library resources:
           Moves library resources to /usr/share/GNUstep/Libraries.

       frameworks:
           Moves   framework   headers   to   /usr/include/GNUstep/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    (/usr/lib/GNUstep/ApplicationSupport)    bundles'   resources   to
           /usr/share/GNUstep.  This is not done by default and requires specifying the --appsupport option.

       bundles:
           Moves bundles' (by default at /usr/lib/GNUstep/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.

OPTIONS

       dh_gnustep  accepts  the common debhelper 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 the resource bundle of a GNUstep application (/usr/lib/GNUstep/Applications/Foo.app/Resources on
           Debian systems) to /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 should be used with the
           appropriate -p option.

       --appsupport
           Move the Resources  directories  of  all  bundles  found  in  /usr/lib/GNUstep/ApplicationSupport  to
           /usr/share,  as  subdirectories  to the parent directory.  If the package ships several bundles under
           /usr/lib/GNUstep/ApplicationSupport/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  /usr/lib/GNUstep/Bundles  (or  an  alternative
           directory  under  /usr/lib/GNUstep  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 /usr/lib/GNUstep/ApplicationSupport to /usr/share/GNUstep in the specified
           package.   If  --bundle  is  specified,  move  the   Resource   directories   of   all   bundles   in
           /usr/lib/GNUstep/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:
         ifeq (,$(filter lynkeos.app-common,$(shell dh_listpackages)))
                 rm -rf debian/tmp$(GNUSTEP_SYSTEM_APPS)/Lynkeos.app/Resources
                 dh_gnustep
         else
                 dh_gnustep --app --move-to=lynkeos.app-common
         endif

       Move the lynkeos.app resource bundle to the architecture-independent  package  lynkeos.app-common.   When
       doing  a  full  build  (arch:all  +  arch:any),  the  make  conditional is false so the move is done when
       operating on lynkeos.app.  During an arch:any build, no move is being done but the lynkeos.app package is
       processed with the the default dh_gnustep behaviour, gaining a bug-script symlink and cleaning  up  build
       artifacts.   The  deletion  of  the Resources directory is to eliminate a dh_missing(1) error.  During an
       arch:all build the move is done while processing the lynkeos.app-common package.

         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:
                 dh_gnustep --app --bundle-dir=ColorPickers \
                    --move-to=gnustep-gui-common

       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.

BUGS

       Should implement -X option.

       Doesn't really do the right thing with info files (should call install-info).

       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 3.6.2

       FHS, version 2.3

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.38.2                                       2024-08-15                                      DH_GNUSTEP(1)