This chapter explains the GNOME framework as used by ports. The framework can be loosely divided into the base components, GNOME desktop components, and a few special macros that simplify the work of port maintainers.
Adding this variable to the port allows the use of
the macros and components defined in
bsd.gnome.mk. The code in
bsd.gnome.mk adds the needed
build-time, run-time or library dependencies
or the handling of special files.
GNOME applications under FreeBSD use the
USE_GNOME infrastructure. Include all the
needed components as a space-separated list. The
USE_GNOME components are divided into
these virtual lists: basic components, GNOME 3 components
and legacy components. If the port needs only GTK3 libraries,
this is the shortest way to define it:
USE_GNOME= gtk30
USE_GNOME components automatically
add the dependencies they need. Please see
Section 6.11, “GNOME Components” for an exhaustive
list of all USE_GNOME components and which
other components they imply and their dependencies.
Here is an example Makefile for a
GNOME port that uses many of the techniques outlined in this
document. Please use it as a guide for creating new
ports.
# $FreeBSD$ PORTNAME= regexxer DISTVERSION= 0.10 CATEGORIES= devel textproc gnome MASTER_SITES= GNOME MAINTAINER= kwm@FreeBSD.org COMMENT= Interactive tool for performing search and replace operations USES= gettext gmake localbase:ldflags pathfix pkgconfig tar:xz GNU_CONFIGURE= yes USE_GNOME= gnomeprefix intlhack gtksourceviewmm3 INSTALLS_ICONS= yes GLIB_SCHEMAS= org.regexxer.gschema.xml .include <bsd.port.mk>
The USE_GNOME macro without any
arguments does not add any dependencies to the port.
USE_GNOME cannot be set after
bsd.port.pre.mk.
This section explains which macros are available and how
they are used. Like they are used in the above example. The
Section 6.11, “GNOME Components” has a more in-depth
explanation. USE_GNOME has to be set for
these macros to be of use.
INSTALLS_ICONSGTK+ ports which install
Freedesktop-style icons to
${LOCALBASE}/share/icons should use
this macro to ensure that the icons are cached and will
display correctly. The cache file is named
icon-theme.cache. Do not include
that file in pkg-plist. This macro
handles that automatically. This macro is not needed
for Qt, which uses an
internal method.
GLIB_SCHEMASList of all the glib schema files the port installs. The macro will add the files to the port plist and handle the registration of these files on install and deinstall.
The glib schema files are written in
XML and end with the
gschema.xml extension. They are
installed in the
share/glib-2.0/schemas/ directory.
These schema files contain all application config values
with their default settings. The actual database used
by the applications is built by
glib-compile-schema, which is
run by the GLIB_SCHEMAS macro.
GLIB_SCHEMAS=foo.gschema.xml
Do not add glib schemas to the
pkg-plist. If they are listed in
pkg-plist, they will not be
registered and the applications might not work
properly.
GCONF_SCHEMASList all the gconf schema files. The macro will add the schema files to the port plist and will handle their registration on install and deinstall.
GConf is the XML-based database
that virtually all GNOME applications use for storing
their settings. These files are installed into the
etc/gconf/schemas directory. This
database is defined by installed schema files that are
used to generate %gconf.xml key
files. For each schema file installed by the port,
there must be an entry in the
Makefile:
GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas
Gconf schemas are listed in the
GCONF_SCHEMAS macro rather than
pkg-plist. If they are listed in
pkg-plist, they will not be
registered and the applications might not work
properly.
INSTALLS_OMFOpen Source Metadata Framework
(OMF) files are commonly used by
GNOME 2 applications. These files contain the
application help file information, and require special
processing by ScrollKeeper/rarian. To properly register
OMF files when installing GNOME
applications from packages, make sure that
omf files are listed in
pkg-plist and that the port
Makefile has
INSTALLS_OMF defined:
INSTALLS_OMF=yes
When set, bsd.gnome.mk
automatically scans pkg-plist and
adds appropriate @exec and
@unexec directives for each
.omf to track in the
OMF registration database.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.