diff --git a/en/gnome/docs/faq.sgml b/en/gnome/docs/faq.sgml index cc9a86e94b..456cbf8c42 100644 --- a/en/gnome/docs/faq.sgml +++ b/en/gnome/docs/faq.sgml @@ -1,448 +1,452 @@ - + %gnomeincludes; %includes; ]> &header;

Contents

  1. How do I get GNOME for FreeBSD?
  2. GNOME is failing to build from ports. What do I do?
  3. I installed GNOME, but I'm missing application foo. What gives?
  4. What's the best way to upgrade GNOME?
  5. What is the difference between GNOME and KDE? Which one is better?
  6. Where can I get more themes for GNOME?
  7. What window managers work well with GNOME?
  8. Why can't I launch Linux apps from the GNOME panel?
  9. Why is GNOME so huge, slow and basically useless?
  10. Does GNOME support anti-aliased fonts? -
  11. How to enable Java support in the Mozilla - web browser? +
  12. How do I enable Java support in the Mozilla + or Galeon web browser?

Full Text

1. How do I get GNOME for FreeBSD?

There are two ways to install GNOME on FreeBSD. One way is to use packages, and the other way is to use ports.

To install GNOME from packages, use the command:

# pkg_add -r gnome

This will download the latest GNOME packages from the FreeBSD FTP site, and proceed to install them on your system. Note: As of 4.4-RELEASE, installing GNOME from packages contained on a release CDROM is broken. You should instead use the ports method below. The problem was fixed in the 4.5-RELEASE.

To build and install GNOME from ports, you should first cvsup the latest ports tree. Then:

 # cd /usr/ports/x11/gnome
 # make clean
 # make install clean
 	    

After installing GNOME, you might consider adding the following to /etc/make.conf:

 WITH_GTK=yes
         

This is an optional step, but will allow certain ports, such as Vim, to take advantage of the Gtk+ widget set.

Currently, building from ports is the preferred method for installing GNOME on FreeBSD, however FreeBSD GNOME team is working on improving situation with pre-built packages.


2. GNOME is failing to build from ports. What do I do?

The majority of GNOME compilation problems can be solved by making sure all the necessary GNOME components are up-to-date. All GNOME applications require the following core components to build:

 pkg-config
 glib
 gettext
 gtk+
 ORBit
 Imlib
 esound
 gnomelibs
 gnomecore
             

Verify all those components are up-to-date, then try building GNOME or your GNOME application again. You may see compiler errors relating to pthreads (POSIX threads), such as:

 undefined reference to 'strerror_r'
             

To fix thread related errors, make sure you have the following compiled into your kernel:

 options     P1003_1B
 options     _KPOSIX_PRIORITY_SCHEDULING
             

And make sure if you're tracking -stable or -current, that you do not have NOLIBC_R set in /etc/make.conf. If you do, remove it, then rebuild world. If you still have trouble, please send email to &email;@FreeBSD.ORG with the output of the failed compilation.

Ports such as devel/pth and devel/ngpt can also cause pthread-related problems when compiling GNOME. If you do not need these ports installed, it is recommended you remove them.


3. I installed GNOME, but I'm missing application foo. What gives?

Only the core components, and a few extras, are included in the gnome package. There is another meta-port called gnome-fifth-toe that includes some more popular (and bigger) GNOME applications. gnome-fifth-toe includes Galeon, Pan, Gnumeric, AbiWord, GNUCash, Evolution, Gimp, Dia, and more.

To install gnome-fifth-toe from packages. Note: Installing gnome-fifth-toe from packages was broken broken on 4.4-RELEASE (fixed in 4.5-RELEASE).

# pkg_add -r gnome-fifth-toe

To build gnome-fifth-toe from ports:

 # cd /usr/ports/x11/gnome-fifth-toe
 # make clean
 # make install clean
 	    

A full list of GNOME applications that have been ported to FreeBSD can be found here.


4. What's the best way to upgrade GNOME?

I find that /usr/ports/sysutils/portupgrade works really well. For example:

# portupgrade -r ORBit

This will upgrade ORBit and every other port that depends on it (that needs updating).

However, sometimes so much changes that it becomes necessary to do a little housekeeping first. In that case, this usually works:

 # pkg_delete -r ORBit\*
 # cd /usr/ports/x11/gnome
 # make clean
 # make install clean
 	    

5. What is the difference between GNOME and KDE? Which one is better?

GNOME and KDE are both desktop environments. GNOME is based on the GTK+ widget set, and is primarily written in C. KDE on the other hand is based on the QT widget set, and is primarily written in C++.

Both environments offer a wide range of applications from toys and games to full-blown office suites. Both are actively developed and ported to FreeBSD. If you're trying to decide which one to call your own, try them both, and see which one you like better.

You can read more about KDE on FreeBSD at http://freebsd.kde.org.


6. Where can I get more themes for GNOME?

If you're tired of the default themes that come with GNOME, you do have options. First, FreeBSD's ports collection comes with a rather large collection of GTK themes for GNOME. To install these from packages, run:

# pkg_add -r gtk-engines-collection

To install the themes from ports, do:

 # cd /usr/ports/x11-toolkits/gtk-engines-collection
 # make clean
 # make install clean
 	    

If you want even more themes, checkout http://gtk.themes.org. Note, you will probably need to install the gtk-engines-collection before using any of the pixmap themes from themes.org.


7. What window managers work well with GNOME?

The gnome meta-port installs the Sawfish window manager by default. However, there are other window managers you can use with GNOME. These include:


8. Why can't I launch Linux apps from the GNOME panel?

Short answer is you can. The problem is most likely that you have Launch Feedback (xalf) enabled. xalf is a FreeBSD shared object, and as such cannot be loaded by Linux applications. When you try to load a Linux application, nothing will happen, and something like the following will show up in ~/.gnomerc-errors or on stdout:

 /usr/local/Acrobat4/Reader/intellinux/bin/acroread: error in loading shared 
 libraries: /usr/X11R6/lib/libxalflaunch.so.0: ELF file OS ABI invalid.
 	    

To fix this problem you need to install the linux-xalf port. This port (or package) installs the Linux version of libxalflaunch.so.0 in /compat/linux/usr/X11R6/lib, and will be used instead of the FreeBSD binary when launching Linux applications. You may see the following error after installing linux-xalf:

 /usr/libexec/ld-elf.so.1: Shared object "libkrb.so.3" not found
         

This can be safely ignored.


9. Why is GNOME so huge, slow and basically useless?

Well, it depends on the point of view. Of course both GNOME and KDE are still far from perfection or even completeness and could hardly be compared to commercial offerings in terms of user-friendliness. But at the same time it is a huge step in the right direction. It should also be noted, that both GNOME and KDE are still very young and the situation is likely to improve as they mature (does anybody remember what sort of crap Windows 3.11 was?).


10. Does GNOME support anti-aliased fonts?

Yes! There are two things you'll need to accomplish this, however. First, you'll need to be running XFree86 4.0 or higher (4.1 or higher is recommended). Then, you'll need the x11/gdkxft port. That's it! You don't need to recompile any of your GNOME applications.

If you run into problems, have a look at the gdkxft website or send email to &email;@FreeBSD.ORG.


11. - How to enable Java support in the Mozilla web browser? + How do I enable Java support in the Mozilla or Galeon web browser?

To enable Java support in the Mozilla web browser you need to - install Java Development Kit available from the java/jdk13 - port (at least version 1.3.1p6 is required) and restart the - browser. Please note that if version of Mozilla port installed - on your computer is less that 0.9.8_2,1 then you also need to - use the following command to create a symbolic link required for + install the Java Development Kit available from the java/jdk13 + port (version 1.3.1p6 or later is required) and restart the + browser. Please note that if the version of the Mozilla package + installed on your computer is less than 0.9.8_2,1 then you also need + to use the following command to create the symbolic link required for the Java plugin to work:

 # ln -sf /usr/local/jdk1.3.1/jre/plugin/i386/ns600/libjavaplugin_oji.so \
 	/usr/X11R6/lib/mozilla/plugins/libjavaplugin_oji.so
 	    

You can verify that the Mozilla has picked the Java plugin by - selecting About Plug-ins from the menu Help after + selecting About Plug-ins from the Help menu after restarting Mozilla. You should see /usr/local/jdk1.3.1/jre/plugin/i386/ns600/libjavaplugin_oji.so - in the list of available plugins, which indicates that the Java + in the list of available plugins, indicating that Java support is enabled.

+ +

If you built Galeon against the full version of Mozilla, then + the Java plugin will also work for it. Just make sure that + Allow Java in the Settings menu is checked.


&footer; diff --git a/en/gnome/docs/porting.sgml b/en/gnome/docs/porting.sgml index 6fd2b348f9..95ca829f3e 100644 --- a/en/gnome/docs/porting.sgml +++ b/en/gnome/docs/porting.sgml @@ -1,250 +1,250 @@ - + %gnomeincludes; %includes; ]> &header;

This document assumes that you already know how port system works, and therefore only provides GNOME-specific hints and tips. General instructions can be found in the FreeBSD Porter's Handbook.

GNOME Makefile Macros

For ports that require GNOME, you should define the following in your port's Makefile:

 USE_GNOME=	yes
 USE_X_PREFIX=	yes
           

These will take care of the install prefix and requiring all the core GNOME dependencies. If your port can use GNOME, but it isn't required, you can define the following in your Makefile:

 WANT_GNOME=	yes
           

If the ports system detects GNOME installed on the system then GNOME components will be built. Other useful GNOME-related macros that can be define in your port's Makefile include:

  • USE_GLIB (WANT_GLIB) : The application requires (can use) Glib. Defining USE_GNOME or USE_GTK takes care of this option automatically.

  • USE_GTK (WANT_GTK) : The application may not be GNOME-compliant, but requires GTK+ widgets. This will take care of those dependencies. Note, this option should not be defined if USE_GNOME is defined.

  • USE_ESOUND (WANT_ESOUND) : The application requires (can use) esound. Normally, esound support is added by specifying USE_GNOME.

  • USE_IMLIB (WANT_IMLIB) : The application requires (can use) the Imlib image library. This is not needed if USE_GNOME is defined.

  • USE_GNOMELIBS (WANT_GNOMELIBS) : The application requires (can use) GNOME libraries. This does not import as many dependencies as USE_GNOME and should be used for applications that use GNOME, but do not need the GNOME Control Center, the GNOME capplet library, or anything from the GNOME Core.

  • USE_GNOMECTRL (WANT_GNOMECTRL) : The application requires (can use) all the GNOME libraries and the GNOME Control Center, but does not use anything from GNOME Core. This option is usually used for backend APIs.

If your port can optionally use GNOME, you must set WANT_GNOME= yes in your Makefile, then check to see if HAVE_GNOME is set. Since this is a conditional evaluation, you need to stick it between bsd.port.pre.mk and bsd.port.post.mk. For example:

 WANT_GNOME=	yes
 
 .include <bsd.port.pre.mk>
 
 .if defined(HAVE_GNOME)
 USE_GNOME=	yes
 CONFIGURE_ARGS+=	--with-gnome
 .else
 CONFIGURE_ARGS+=	--without-gnome
 .endif
 
 .include <bsd.port.post.mk>
           

What happens here is WANT_GNOME tells the ports system to check for the existence of gnome-config. If it exists, HAVE_GNOME is set. If not, HAVE_GNOME remains unset. By setting USE_GNOME after checking for HAVE_GNOME the port will register all the GNOME dependencies properly.

When building GNOME ports, remember that many applications require shared directories in ${PREFIX}/share/gnome. Ports should be constructed in a way such that files placed in these directories are removed before the package which created the directories (i.e. the package that has an appropriate @dirrm in its pkg-plist). For GNOME, the principle parent port is gnomecore. If your port incudes USE_GNOME= yes you should be fine. If you're uncertain if you need to require any other packages, you can use the script ${PORTSDIR}/Tools/scripts/gnomedepends.py to examine your port's pkg-plist:

 # cd /usr/ports/x11/mygnomeport
 # /usr/ports/Tools/scripts/gnomedepends.py
 According to the contents of pkg-plist the port depends on the following GNOME
 port(s):
 
 /usr/ports/mail/gmail, for directories:
 	share/gnome/help
 	share/gnome/apps
 	share/gnome
 
 /usr/ports/sysutils/gnomecontrolcenter, for directories:
 	share/gnome/apps/Settings
 	share/gnome/apps
 
 /usr/ports/textproc/scrollkeeper, for directories:
 	share/gnome/omf
 	share/gnome
 
 /usr/ports/x11/gnomecore, for directories:
 	share/gnome/apps/System
 
 /usr/ports/x11/gnomelibs, for directories:
 	share/gnome/pixmaps
 	share/gnome/help
           

To see a list of what packages your port will actually require, use the command make package-depends.

GNOME Internationalization

GNOME relies on the gettext port to do internationalization (I18N). FreeBSD currently supports two versions of gettext: 0.10.35 and 0.10.40. Most ports can use 0.10.35. However, if, when compiling your port, you get an error building the .po translation files similar to the following you will need to use the newer version of gettext:

 /usr/local/bin/msgfmt -o zh_TW.mo zh_TW.po
 zh_TW.po:255: end-of-line within string
 zh_TW.po:912: illegal control sequence
 zh_TW.po:2806: end-of-line within string
 zh_TW.po:2856: end-of-line within string
 zh_TW.po:2879: illegal control sequence
 zh_TW.po:2982: end-of-line within string
 found 6 fatal errors
           

To use the newer gettext, add the following to your port's Makefile:

 BUILD_DEPENDS=  msgfmt-new:${PORTSDIR}/devel/gettext-devel
 CONFIGURE_ENV+= MSGFMT=${LOCALBASE}/bin/msgfmt-new \
 				XGETTEXT=${LOCALBASE}/bin/xgettext-new
 	  

When installing GNOME applications, make sure the translation files are put in /usr/X11R6/share/locale and not /usr/X11R6/share/gnome/locale. To do this, add the following to your port's Makefile's pre-patch: section:

 pre-patch:
 	@find ${WRKSRC} -name "Makefile.in*" | xargs ${PERL} -pi -e \
 		's|\$\(datadir\)/gnome/|\$\(datadir\)/|g ; \
 		 s|\$\(datadir\)/locale|\$\(prefix\)/share/locale|g'
           

Also, make sure the translation files are installed as .mo files and not .gmo files. To do this, you can generally use this patch.

If your port depends on iconv, make sure you substitute all instances of iconv.h with giconv.h, and all instances of -liconv with -lgiconv.

Libtool Issues

Most if not all GNOME applications depend on GNU's libtool. They also use the GNU configure system. Newer versions of libtool have a problem with FreeBSD's USE_LIBTOOL macro. Use of this macro should be avoided. Instead, set GNU_CONFIGURE= yes, and use the following patch. This patch prevents the installation of .la files, prevents the building and installation of static archive libraries, and ensures that -pthread will be passed to the linker.

-

Distfile Issues

+

Distfiles

As GNOME 2.0 gains developer momentum, things must be done to sort out the new GNOME 2.0 distfiles from the GNOME 1.0 distfiles, as well as do our part to keep the distfiles directory clean. To do this, GNOME 1.0 ports that download their distfiles from ${MASTER_SITE_GNOME} must add the following to their - Makfile:

+ Makefile:

 DIST_SUBDIR=    gnome
       

GNOME 2.0 ports that download their distfiles from ${MASTER_SITE_GNOME} must include the following in their - Makfile:

+ Makefile:

 DIST_SUBDIR=    gnome2
 	  

Some GNOME distfiles come in both tar gzip as well as tar bzip2 format. To save time when downloading distfiles over slow links, you should use the bzip2 distfiles whenever possible. To do this, add the following to your port's Makefile:

 USE_BZIP2=  yes
 	  

If you still need help with your port, have a look at some of the existing ports for examples. The freebsd-gnome mailing list is also there for you.

&footer;