diff --git a/en/gnome/docs/example-Makefile.sgml b/en/gnome/docs/example-Makefile.sgml index 85e6dcf878..984fd4ca27 100644 --- a/en/gnome/docs/example-Makefile.sgml +++ b/en/gnome/docs/example-Makefile.sgml @@ -1,70 +1,70 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

The following is an example Makefile for a FreeBSD GNOME port.

 # New ports collection makefile for:	gnomeapp
 # Date created:						27 December 2003
 # Whom:								Some GNOME User <&email;@FreeBSD.org>
 #
-# $FreeBSD: www/en/gnome/docs/example-Makefile.sgml,v 1.8 2005/12/29 06:42:27 adamw Exp $
+# $FreeBSD: www/en/gnome/docs/example-Makefile.sgml,v 1.9 2006/04/30 23:38:56 marcus Exp $
 #
 
 # For this example, assume there was already a gnomeapp in the tree, and that this
 # is the GTK+-2 version (i.e. gnomeapp2 versus gnomeapp).
 PORTNAME=		gnomeapp2
 PORTVERSION=	&gnomever;.2
 MASTER_SITES=	${MASTER_SITE_GNOME}
 MASTER_SITE_SUBDIR= sources/${PORTNAME:S/2//}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
 DISTNAME=	${PORTNAME:S/2//}-${PORTVERSION}
 DIST_SUBDIR=	gnome2
 
 MAINTAINER=	gnome@FreeBSD.org
 COMMENT=	A GNOME app that does some stuff
 
 USE_BZIP2=	yes
 USE_X_PREFIX=	yes
 GNU_CONFIGURE=	yes # NOTE: if the port needs ltverhack, this must be
 USE_AUTOTOOLS=libtool:15
 USE_GMAKE=		yes # same with GNU make
 # This is for i18n:
 CONFIGURE_ENV+=	CPPFLAGS="-I${LOCALBASE}/include" \
 				LDFLAGS="-L${LOCALBASE}/lib"
 USE_GNOME=		gnomehack gnometarget gtk20
 
 # This application can dock in the GNOME panel, or it can not.
 # But there's no need to build support for it if the GNOME panel
 # libraries are not installed, so only build GNOME panel support
 # if the gnomepanel port is already installed.
 WANT_GNOME=		yes
 
 .include <bsd.port.pre.mk>
 
 .if ${HAVE_GNOME:Mgnomepanel}!=""
 USE_GNOME+= 		gnomepanel
 CONFIGURE_ARGS+=    --with-gnome
 PKGNAMESUFFIX=  	-gnome
 .else
 CONFIGURE_ARGS+=    --without-gnome
 .endif
 
-# Given all the above code, the package name is either "gnomeapp2-&gnomever;.2-gnome" or
+# Given all the above code, the package name is either "gnomeapp2-gnome-&gnomever;.2" or
 # "gnomeapp2-&gnomever;.2", depending upon whether you want gnomepanel support. The downloaded
 # distfile will be "gnomeapp-&gnomever;.2.tar.bz2."
 
 .include <bsd.port.post.mk>
 	
&footer; diff --git a/en/gnome/docs/faq2.sgml b/en/gnome/docs/faq2.sgml index 317135d44b..7af48ba654 100644 --- a/en/gnome/docs/faq2.sgml +++ b/en/gnome/docs/faq2.sgml @@ -1,1046 +1,1046 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

Contents

  1. How do I get GNOME &gnomever; for FreeBSD?
  2. GNOME &gnomever; is failing to build from ports. What do I do?
  3. I installed GNOME &gnomever;, but I am missing application foo. What gives?
  4. What is the best way to upgrade from GNOME 1.4 to GNOME 2?
  5. What is the best way to upgrade from GNOME &gnomeoldver; to GNOME &gnomever;?
  6. How do I keep my GNOME &gnomever; components and applications up-to-date?
  7. Can I install GNOME 1.4 applications under GNOME &gnomever;?
  8. Where can I get more themes for GNOME &gnomever;?
  9. What window managers work well with GNOME &gnomever;?
  10. Does GNOME &gnomever; support anti-aliased fonts?
  11. How can I control what fonts are anti-aliased?
  12. How do I edit my GNOME 2 menus?
  13. How do I use GTK+ 2 resource settings for GTK+ 2 applications when not in a GNOME environment?
  14. How do I configure settings for GNOME 1.4 applications under GNOME &gnomever;?
  15. Nautilus-cd-burner does not let me burn CDs, or Totem/Goobox/Sound-juicer cannot find my CD/DVD drive. How can I fix this?
  16. How do I add new GDM sessions?
  17. How do I disable spatial Nautilus?
  18. How do I disable desktop icons for "Computer," "Home," and "Trash?"
  19. How do I mount my removable media in Nautilus?
  20. Why is GNOME so slow to start up?
  21. How do I install GNOME packages from the GNOME Tinderbox?
  22. How do I add new MIME types to GNOME?
  23. How do I configure GDM for automatic logins?
  24. How do I upgrade from gnome2-lite to the full GNOME &gnomever; desktop?
  25. How do I enable Emacs-style keybindings in GTK+ applications?
  26. Why do I only see generic icons in Nautilus?
  27. Why do I need confirm access to keyring every time Nautilus tries to open external share?

Full Text

  1. How do I get GNOME &gnomever; for FreeBSD?

    There are two ways to install GNOME &gnomever; on FreeBSD. One way is to use packages, and the other way is to use ports. Before doing either installation, you should first familiarize yourself with the GNOME &gnomever; release notes.

    Install GNOME &gnomever; from packages.

    To install GNOME &gnomever; from packages, use the command:

    # pkg_add -r gnome2

    This will download the latest GNOME &gnomever; packages from the FreeBSD FTP site, and proceed to install them on your system.

    Up-to-date GNOME packages for i386 and amd64 for all supported versions of FreeBSD are also available from the GNOME Tinderbox.

    To build GNOME &gnomever;, you must first obtain the latest ports tree skeleton. This is most easily accomplished with portsnap(8) or cvsup. Then:

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

    Enable File Alteration Monitor (FAM) support for your &gnomever; desktop.

    GNOME includes support for the File Alteration Monitor (devel/gamin) by default, in order to improve the GNOME desktop's ability to respond to files being added, deleted, or modified by other programs.

    Make GNOME &gnomever; start when X starts.

    Once you have the GNOME &gnomever; desktop installed, GNOME &gnomever; can be started by adding the following line to ~/.xsession or ~/.xinitrc, as appropriate:

     exec gnome-session
     	    
  2. GNOME &gnomever; is failing to build from ports. What do I do?

    The majority of GNOME &gnomever; compilation problems can be solved by making sure all the necessary GNOME &gnomever; components are up-to-date.

    Updating solves most problems

    If you have not yet followed FAQ #6, do so, as it will most likely fix the problem you are reading this document to solve.

    Please follow FAQ #6. If you have not done so, and you ask for help, you will be told to follow FAQ #6.

    In general, when a GNOME &gnomever; component is not up-to-date, you will see an error similar to the following:

     checking for libgnomeui-2.0 libbonoboui-2.0 libbonobo-2.0 >= 2.2.1
     gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2 libglade-2.0...
     configure: error: Library requirements (libgnomeui-2.0 libbonoboui-2.0
     libbonobo-2.0 >= 2.2.1 gnome-vfs-2.0 libgnomeprint-2.2 >= 2.3.0 libgnomeprintui-2.2
     libglade-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable
     if your libraries are in a nonstandard prefix so pkg-config can find them.
     	      

    Simply keeping your ports tree up-to-date will prevent these errors.

    If the pkg-config program is out-of-date, you may see a configure error similar to the following:

     configure: error: *** pkg-config too old; version 0.14 or better required.
     	      

    While this may be buried in some other text, the error is very straight-forward: you need to upgrade pkg-config. The pkg-config application is found in the - devel/pkgconfig port. By updating this port to + devel/pkg-config port. By updating this port to the latest version, this error will go away.

    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     _KPOSIX_PRIORITY_SCHEDULING
                 

    If you are tracking -stable or -current, make sure 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. It is also helpful to include the config.log from the port's work directory.

    Prevent two versions of the same library.

    A common source of build failures is the existence of multiple versions of the same library. This can happen if you have two different versions of a port installed, or can even happen through normal portupgrade use. You can back up the libraries in /usr/local/lib/compat/pkg and remove - them, and then run portupgrade -u -rf pkgconfig. This will force a + them, and then run portupgrade -u -rf pkg-config. This will force a rebuild of all GNOME-related apps (and a fair number of other apps) without retaining old versions of libraries in /usr/local/lib/compat/pkg.

  3. I installed GNOME &gnomever;, but I am missing application foo. What gives?

    Only the core desktop is included in the gnome2 package. Here are some other GNOME meta-ports that offer convenient groupings of popular GNOME 2 software.

    To install any of these from packages:

     # pkg_add -r meta-port
                 

    For example, to install the GNOME 2 Fifth Toe from packages:

     # pkg_add -r gnome2-fifth-toe
     	    

    To install any of these from ports:

     # cd /usr/ports/category/meta-port
     # make clean
     # make install clean
     	    

    For example, to install the GNOME 2 Fifth Toe from ports:

     # cd /usr/ports/x11/gnome2-fifth-toe
     # make clean
     # make install clean
     	    
  4. What is the best way to upgrade from GNOME 1.4 to GNOME 2?

    If you have GNOME 1.4, and you want to upgrade to GNOME &gnomever;, first familiarize yourself with the official upgrade instructions from the GNOME site. Make sure your GNOME 1.4 ports are up-to-date, and then remove the following GNOME 1.4 packages from the system:

     gnomecore
     sawfish
     gnomeapplets
     gnomemedia
     gtop
     libgtop
     nautilus
     gedit
     xalf
     bugbuddy
     gnomeaudio
     gnomegames
     gnomeutils
     gdm
     eog
     ggv
     	   

    After those packages are removed, you can build GNOME &gnomever; as per the instructions listed above.

  5. What is the best way to upgrade from GNOME &gnomeoldver; to GNOME &gnomever;?

    The &gnomeoldver; to &gnomever; does have a few caveats. You are strongly advised to read the upgrade FAQ for detailed instructions.

  6. How do I keep my GNOME &gnomever; components and applications up-to-date?

    You are emphatically encouraged to use portupgrade -- and only portupgrade -- to keep your GNOME &gnomever; components and applications up-to-date.

    Update your ports with portupgrade.

    Once you have updated your ports tree (presumably with cvsup), the following two simple commands will update what needs to be updated, and will prevent inconsistencies:

     # pkgdb -F
     # portupgrade -a
     		

    Start from scratch.

    Despite consistent utilization of portupgrade, if it seems like everything is refusing to build with everything else, you might save yourself a headache or three by removing all your GNOME apps and reinstalling them (your data files will remain untouched). To do this, follow these commands:

     # pkgdb -fF
    -# pkg_delete -rf pkgconfig\*
    +# pkg_delete -rf pkg-config\*
     # cd /usr/ports/x11/gnome2
     # make clean
     # make install clean
     	    

    After running the above commands, you will have to reinstall all the GNOME applications you desire. This process sounds painful, but it is actually a great way to clear cruft off of your system. Just install applications as you need them, and you will be surprised how much disk space you have reclaimed. A full rebuild does take a significant amount of time; fortunately, this measure is only rarely needed.

  7. Can I install GNOME 1.4 applications under GNOME &gnomever;?

    GNOME 1.4 ports will run well under the GNOME 2 desktop. Older applications that were incompatible with the GNOME 2 desktop have been removed from the ports tree, so it should be safe to run any GNOME application in the ports tree under the GNOME 2 desktop.

  8. Where can I get more themes for GNOME &gnomever;?

    On the following websites, you can find themes for GTK+, metacity, nautilus, GDM, icons, backgrounds, and more:

    Some of these themes have already been ported to FreeBSD. Check out the x11-themes/gnome-icons and x11-themes/metacity-themes meta-ports for a nice sample.

  9. What window managers work well with GNOME &gnomever;?

    The gnome2 meta-port installs the metacity window manager by default. Another popular window manager that works well with GNOME &gnomever; is sawfish. Sawfish - can be found in x11-wm/sawfish2.

    + can be found in x11-wm/sawfish.

    To switch between metacity and sawfish in GNOME 2, you will need to do the following:

     # killall metacity; sawfish &
     # gnome-session-save --gui
     

    The gnome-session-save is important. Without it, the window manager will revert back to the one previously configured upon next login. To switch back, simply reverse sawfish and metacity.

    If you have gotten the GNOME &gnomever; desktop working under an alternative window manager, please take a screenshot and send it to us!

  10. Does GNOME &gnomever; support anti-aliased fonts?

    Yes! Anti-aliasing requires XFree86 4.x or X.Org with freetype2 support. To add freetype2 support to X, make sure you have the following modules loaded in your XF86Config or xorg.conf file under the Modules section:

     Load	"freetype"
     Load	"type1"
     		

    Then, simply check out the Fonts capplet under Applications->Desktop Preferences. If you want a good set of TrueType starter fonts, install the x11-fonts/webfonts port.

    Sometimes, after adding new fonts to the system, it is necessary to teach fontconfig about them. If you find that newly added fonts are not made available even after restarting GNOME 2, run the following command as root:

     # fc-cache -f -v
     		

    If you have any questions, please send them to &email;@FreeBSD.org.

  11. How can I control what fonts are anti-aliased?

    GNOME &gnomever; makes use of libXft and fontconfig to handle anti-aliasing. Fontconfig is a very powerful XML-based font configuration package. You can create a ~/.fonts.conf file that controls virtually every aspect of fontconfig. For example, if you do not want to anti-alias fonts smaller than 16 point, create a ~/.fonts.conf with the following contents:

     <?xml version="1.0"?>
     <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
     <fontconfig>
     
     <match target="font">
             <test name="size" compare="less_eq">
                     <double>16</double>
             </test>
             <edit name="antialias" mode="assign">
                     <bool>false</bool>
             </edit>
     </match>
     <match target="font">
             <test name="pixelsize" compare="less_eq">
                     <double>16</double>
             </test>
             <edit name="antialias" mode="assign">
                     <bool>false</bool>
             </edit>
     </match>
     </fontconfig>
                     

    Refer to fonts-conf(5) for more information.

  12. How do I edit my GNOME 2 menus?

    Right-click on the Applications menu, and select Edit Menus. This will invoke the gnome-menu-editor tool. Another popular, and more fully-featured menu editor, is deskutils/alacarte.

  13. How do I use GTK+ 2 resource settings for GTK+ 2 applications when not in a GNOME environment?

    GNOME 2 applications get their GTK+ 2 resources from themes and the corresponding theme engine. If you would rather run your GTK+ 2 applications in a non-GNOME environment then you will need to create a file named ~/.gtkrc-2.0.

    To use the widgets from a GTK+ 2 theme when in a non-GNOME environment, simply include the theme's gtk-2.0/gtkrc in your ~/.gtkrc-2.0. For example:

    include "/usr/X11R6/share/themes/Crux/gtk-2.0/gtkrc"

    If you prefer, you can use the same GTK+ 1.2 theme for both GTK+ 1.2 and GTK+ 2 applications, which will give your GTK+ programs a consistent look. For the most part, you can transfer your settings from your ~/.gtkrc file (used for GTK+ 1.2) with a couple of caveats.

    1. If you have any theme engine references, you will have to make sure there is a corresponding GTK+ 2 theme engine. Otherwise, remove the engine entries.
    2. The default font specification should be outside of any style blocks and should be specified with the gtk-font-name keyword. For example:
      gtk-font-name = "Verdana 11"

    Note that while a GTK+ 1.2 gtkrc file will work in a GTK+ 2 gtkrc-2.0 file, the opposite is not true: the contents of a GTK+ 2 gtkrc-2.0 file will not work inside a GTK+ 1.2 gtkrc file.

    For simply switching GTK+ themes without needing to edit your ~/.gtkrc files, you can use the x11/gtk-theme-switch and x11/gtk2-theme-switch ports.

  14. How do I configure settings for GNOME 1.4 applications under GNOME &gnomever;?

    -

    Install sysutils/gnomecontrolcenter, then invoke +

    Install sysutils/gnome-control-center1, then invoke gnomecc from the command line to bring up the GNOME 1.4 control center.

  15. Nautilus-cd-burner does not let me burn CDs or Totem/Goobox/Sound-juicer cannot find my CD/DVD drive. How can I fix this?

    Nautilus-cd-burner, totem, goobox, and sound-juicer cannot use CD/DVD drives unless support for those devices is enabled in the kernel, and the permissions on the device nodes allow write access. Nautilus-cd-burner, totem, goobox, and sound-juicer talk to CD/DVD drives through the SCSI CAM subsystem. Therefore, you must make sure you have the following configured in your kernel:

     device          scbus
     device          cd
     device          pass
     	    

    You must also make sure you have the following configured in your kernel if you are using an ATAPI CD/DVD drive:

     device		atapicam
     	    

    To figure out which CD/DVD drive you will be using, run the following command as root:

     # camcontrol devlist
     	    

    Your output will look similar to the following:

     <QSI CDRW/DVD SBW-242 UD22>		at scbus1 target 0 lun 0 (cd0,pass0)
     	    

    The devices in parentheses at the end are important. You must make sure the /dev entries for those devices are writable by the users that will be using nautilus-cd-burner, totem, goobox, or sound-juicer. In addition to those devices, /dev/xpt* must also be writable to your nautilus-cd-burner, totem, goobox, and sound-juicer users. The following /etc/devfs.conf configuration will achieve the desired results given the above devlist (NB: devfs.conf is only supported on FreeBSD 5.X and higher):

     perm    cd0     0666
     perm    xpt0    0666
     perm    pass0   0666
     	      

    On FreeBSD 4.X, you can simply set the device node permissions, and they will be preserved across reboots. Note that you must use the 'c' device nodes on FreeBSD 4.X (e.g. cd0c).

  16. How do I add new GDM sessions?

    The process for adding new GDM sessions has changed substantially between GNOME 2.2 and &gnomever;. In order to add new sessions now, you must create a .desktop file containing the session configuration information. Session files live in /usr/X11R6/etc/dm/Sessions. For example, to add a KDE session, create a file in /usr/X11R6/etc/dm/Sessions called kde.desktop. That file should contain the following:

     [Desktop Entry]
     Encoding=UTF-8
     Name=KDE
     Comment=This session logs you into KDE
     Exec=/usr/local/bin/startkde
     TryExec=/usr/local/bin/startkde
     Icon=
     Type=Application
     	    

    This file must have execute permissions. For example:

     # chmod 0555 kde.desktop
     	    

    After creating this file, restart GDM, and there will be a KDE link under the Sessions menu.

  17. How do I disable spatial Nautilus?

    As of GNOME 2.8, Nautilus operates in what is known as a "spatial" mode. This means that each item is opened in a new window. This may not be desirable to all users. If you wish to revert back to the old Nautilus file system browser, go to Desktop->Preferences->File Management, click on the Behavior tab, and check the "Always open in browser windows" checkbox.

  18. How do I disable desktop icons for "Computer," "Home," and "Trash?"

    If you do not want your desktop cluttered with the default icons for "Computer," "Home," and "Trash," you can disable any or all of them. To do this, launch Applications > System Tools > Configuration Editor (gconf-editor from the command line), and go to the /apps/nautilus/desktop key. From here, you can enable or disable the icons, and even rename "Home" and "Trash."

  19. How do I mount my removable media in Nautilus?

    In order for removable volumes (e.g. CD-ROMs, floppy drives, etc.) to be visible in Nautilus, you must first set the vfs.usermount sysctl to 1. To do that, add the following to /etc/sysctl.conf then reboot:

     vfs.usermount=1
     	    

    Next, each user mountpoint must be added to /etc/fstab. For example, if user marcus wants to be able to mount a CD under /home/marcus/cdrom, the following must be in /etc/fstab:

     /dev/acd0   /home/marcus/cdrom	cd9660	ro,noauto 0 0
     	    

    Each additional user would require a similar entry. Note: the user must own the mountpoint, and have write access to the device node in question. In the example above, /home/marcus/cdrom must be owned by the user marcus, and marcus must have write access to the /dev/acd0 node. Once all of that is setup, a CD-ROM icon will appear under the Computer location in Nautilus. Double-clicking on that icon will mount the CD, and place an icon on the desktop.

    Another important caveat with removable media mounting to keep in mind is that mount points must be specified with fully-qualified path names in /etc/fstab. For example, if /home is a symlink to /usr/home, you must specify /usr/home/marcus/cdrom in the example above. If you do not do this, you will encounter strange problems trying to access or unmount your volume.

    Gary Dunn also provides a very detailed how-to for user-mounting SMB volumes.

  20. Why is GNOME so slow to start up?

    Under normal circumstances, GNOME should only take a few seconds to start up (fifteen at most). However, certain configurations may cause it to hang for up to an hour at login time.

    First, make sure your machine's hostname properly resolves. To test this, run the following command:

     ping `hostname`
     	    

    If the command fails, you will either have to add your fully-qualified hostname to DNS or to /etc/hosts. If you do not have a static IP address, you can append your hostname to the localhost line in /etc/hosts. For example, if your machine's hostname is gnome-rocks.mydomain.com, edit /etc/hosts, and change the line:

     127.0.0.1               localhost localhost.my.domain
     	    

    To:

     127.0.0.1              localhost localhost.my.domain gnome-rocks gnome-rocks.mydomain.com
     	    

    Finally, if you have either the TCP or UDP blackhole sysctl enabled, this may cause GNOME to stall on login. If, after fixing hostname resolution and configuring FAM, GNOME still takes a long time to startup, verify the following sysctls are set to 0:

     net.inet.tcp.blackhole
     net.inet.udp.blackhole
     	    
  21. How do I install GNOME packages from the GNOME Tinderbox?

    The GNOME Tinderbox is a service that continually builds i386 and amd64 packages of the GNOME desktop for all supported versions of FreeBSD. As hardware gets better, more meta-ports may be added in the future. This service can be a great way of getting the latest GNOME desktop without having to wait for everything to build from ports.

    To install packages from the GNOME Tinderbox, you must set the PACKAGESITE environment variable to the correct package directory. The package directory can be found by clicking on the Package Directory link on the main Tinderbox page for your architecture. Once you have the correct package directory, you should append /Latest/ to it so you can pkg_add gnome2 without knowing any additional version numbers. For example, if you are installing on i386 FreeBSD 6.0, set PACKAGESITE to the following:

     http://www.marcuscom.com/tb/packages/6.0-FreeBSD/Latest/
     	    

    If you are installing on amd64 FreeBSD 6.0, set PACKAGESITE to the following:

     http://www.marcuscom.com/tb/packages-amd64/6.0-FreeBSD/Latest/
     	    

    Ade Lovett (ade) offers periodically built amd64 package sets for all the GNOME 2 meta-ports on his package building server.

  22. How do I add new MIME types to GNOME?

    Since GNOME 2.8, MIME types are stored in the new FreeDesktop shared-mime-info database. However, gnome-control-center has not been updated to allow one to easily add MIME types to this database. Therefore, if applications such as Nautilus complain that there is no MIME type associated with a particular file, using the Open With tab under Properties not work.

    New MIME types can be added in one of two places. They can either be added system-wide for all users, or added locally on a per-user basis. System-wide MIME types must be added to either ${LOCALBASE}/share/mime or ${X11BASE}/share/mime, where as local MIME types must be added to ~/.local/share/mime. In both cases, the procedure is the same.

    To define a new MIME type, you must create an application and a packages file to describe it. The application file will be named for the MIME type, and contain its name and a brief comment describing it. The packages file will list all the extensions associated with this MIME type as well as any special file magic that can be used to identify files without an extension.

    For example, if we wanted to add a new local MIME type for Windows HTML Help files (i.e. .chm files) called application/x-chm, we would do the following. First, we would create the directories ~/.local/share/mime/application and ~/.local/share/mime/packages if they did not already exist. Then, we create an application file called x-chm.xml that we will place in ~/.local/share/mime/application. The file looks like:

     <?xml version="1.0" encoding="UTF-8"?>
     <mime-type
     xmlns="http://www.freedesktop.org/standards/shared-mime-info"
     type="application/x-chm">
       <comment>Windows HTML Help file</comment>
     </mime-type>
     	    

    Next, we create a packages file called chm.xml that we will place in ~/.local/share/mime/packages. The file looks like:

     <?xml version="1.0" encoding="UTF-8"?>
     <mime-info
     xmlns="http://www.freedesktop.org/standards/shared-mime-info">
       <mime-type type="application/x-chm">
         <comment>Windows HTML Help file</comment>
         <glob pattern="*.chm" />
       </mime-type>
     </mime-info>
     	    

    Once the files have been created, the MIME database must be updated. To do that, run the command:

     % update-mime-database ~/.local/share/mime
     	    

    Finally (and unfortunately), you must logout and log back in to GNOME for the changes to fully take effect. Nautilus' Properties->Open With interface can now be used to associate an application to this MIME type. Hopefully all of this will be made much easier in a future GNOME release.

  23. How do I configure GDM for automatic logins?

    The GNOME Display Manager (GDM) can be configured to automatically log a user in when it starts up. To do that, you must first configure Pluggable Authentication Module (PAM) support for gdm-autologin. On 5.X and higher, create a /etc/pam.d/gdm-autologin file with the following contents:

     auth       required     pam_nologin.so
     auth       required     pam_permit.so
     account    required     pam_unix.so
     session    required     pam_permit.so
     	    

    On 4.X, add the following to /etc/pam.conf:

     gdm-autologin    auth        required    pam_permit.so
     gdm-autologin    account     required    pam_unix.so
     gdm-autologin    session     required    pam_permit.so
     	    

    Once PAM is configured to allow GDM automatic logins, edit /usr/X11R6/etc/gdm/gdm.conf, and set AutomaticLoginEnable=true, and AutomaticLogin equal to the username for which you wish to enable automatic logins. For example:

     AutomaticLoginEnable=true
     AutomaticLogin=marcus
     	    

    That will automatically login the user marcus as soon as GDM launches.

  24. How do I upgrade from gnome2-lite to the full GNOME &gnomever; desktop?

    The Lite edition does not include all of the components of the standard GNOME &gnomever; desktop. If you wish to install the full desktop, first remove the gnome2-lite package, then install the gnome2 port or package. For example:

     # pkg_delete gnome2-lite
     	    

    Then one of the following:

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

    or:

     # pkg_add -r gnome2
     	    

    Alternatively, you can install additional GNOME components individually using either their ports or packages.

  25. How do I enable Emacs-style keybindings in GTK+ applications?

    By default, GTK+ uses Windows-like keyboard shortcuts for command line editing. Many UNIX users are more familiar or more comfortable with Emacs-style shortcuts. For example, GTK+ uses Control+A to mean, "select all," where as Emacs uses Control+A to mean, "put cursor at the beginning of line."

    In order to use Emacs-style keybindings in GTK+ applications, edit ~/.gtkrc-2.0, and add the following:

     gtk-key-theme-name = "Emacs"
     	    

    If you are using the GNOME Desktop, however, this is not sufficient. You must also change the GConf key /desktop/gnome/interface/gtk_key_theme to "Emacs" using Applications > System Tools > Configuration Editor (gconf-editor from the command line).

  26. Why do I only see generic icons in Nautilus?

    This typically occurs for users that are not running the full GNOME Desktop. By default, gnome-session will start gnome-settings-daemon automatically. This daemon is responsible for setting many GTK+ and GNOME preferences including the icon theme. If you are not running the GNOME Desktop, make sure the following has been added to your X11 session startup preferences:

     /usr/X11R6/libexec/gnome-settings-daemon &
     	    

    If you are running the full GNOME Desktop, there may be a problem executing gnome-settings-daemon. Try running /usr/X11R6/libexec/gnome-settings-daemon from the command line, and check for any errors. Most problems can be solved by reinstalling - sysutils/gnomecontrolcenter2.

    + sysutils/gnome-control-center.

  27. Why do I need confirm access to keyring every time Nautilus tries to open external share?

    You did not mount procfs file system. Which is off by default in latest releases. Consider adding following line to your /etc/fstab file:

     proc			/proc		procfs	rw	0	0
     	    
&footer; diff --git a/en/gnome/docs/faq214.sgml b/en/gnome/docs/faq214.sgml index ed98235163..dc5d33d1be 100644 --- a/en/gnome/docs/faq214.sgml +++ b/en/gnome/docs/faq214.sgml @@ -1,122 +1,122 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

Contents

  1. What is new in GNOME &gnomever;?
  2. How do I upgrade to GNOME &gnomever;?
  3. The upgrade failed; what do I do?
  4. List of known GNOME &gnomever; problems and their solutions
  5. I have found a bug; whom should I alert?
  6. I want the fame and glory of the FreeBSD GNOME team! What can I do to participate?

Full Text

  1. What is new in GNOME &gnomever;?

    Although the canonical summary of new features can be found at http://www.gnome.org/start/2.12/notes/en/, some of the most exciting new features of GNOME &gnomever; are:

  2. How do I upgrade to GNOME &gnomever;?

    The answer is much simpler than it has been in the past:

    1. To build GNOME &gnomever;, you need to obtain the latest ports tree skeleton. This is most easily accomplished with portsnap(8) or cvsupCVSup. Simply obtain the latest ports tree, and you are + href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">CVSup. Simply obtain the latest ports tree, and you are ready to go. Then do the following:

       # pkgdb -Ff
       # portupgrade -o net/avahi -f howl
       # portupgrade -o x11/gnome-screensaver -f xscreensaver-gnome
       	  

      Then you can run portupgrade(8) as you normally would. NOTE: it is recommended to run portupgrade -a to make sure you get all the necessary ports.

    More detailed instructions are as follows:

  3. The upgrade failed; what do I do?

    Unfortunately, this is not only possible, it is highly probable. There are many possible valid GNOME configurations, and even more invalid starting points. If the script fails, follow the instructions in the error message to let the FreeBSD GNOME team know about the failure.

    The majority of build failures will be dependency-related issues. One simple way to resolve the problem is to remove the offending port, re-run gnome_upgrade.sh, and then reinstall the port when the upgrade process is complete. In order to avoid having to build everything again, you can pass the -restart flag to gnome_upgrade.sh to resume a failed build.

  4. List of GNOME &gnomever; problems and their solutions

    Although GNOME &gnomever; is certainly the best release to date (of course), there are a couple regressions that slipped in, both in the GNOME code and in its implementation within FreeBSD. Some of the more visible issues are:

    There are currently no known issues with GNOME &gnomever;.

  5. I have found a bug; whom should I alert?

    Please read the FreeBSD GNOME Project's documentation on reporting bugs.

  6. I want the fame and glory of being part of the FreeBSD GNOME team! What can I do to participate?

    Please read our list of ways to get involved!

&footer; diff --git a/en/gnome/docs/gnome1_porting.sgml b/en/gnome/docs/gnome1_porting.sgml index 8ccde3a2de..de37759661 100644 --- a/en/gnome/docs/gnome1_porting.sgml +++ b/en/gnome/docs/gnome1_porting.sgml @@ -1,173 +1,173 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

To see how to utilize these components, please examine the example Makefile.

- + - + - + - + - +
COMPONENT ASSOCIATED PROGRAM IMPLIED COMPONENTS
bonobo devel/bonobo oaf gnomeprint
gal x11-toolkits/gal libglade
gconf devel/gconf oaf
gdkpixbuf graphics/gdk-pixbuf gtk12
glib12 devel/glib12 pkgconfig
glibwww www/glibwww gnomelibs
gnomecanvas graphics/gnomecanvas gnomelibs gdkpixbuf
gnomedbdatabases/gnomedbdatabases/gnome-db libgda
gnomelibsx11/gnomelibsx11/gnome-libs esound imlib libxml orbit
gnomeprintprint/gnomeprintprint/gnome-print gnomelibs gnomecanvas
gnomevfsdevel/gnomevfsdevel/gnome-vfs1 gnomemimedata gconf gnomelibs
gtk12 x11-toolkits/gtk12 glib12
gtkhtml www/gtkhtml glibwww gal libghttp libcapplet
imlib graphics/imlib gtk12
libcapplet x11/libcapplet gnomelibs
libgda databases/libgda gconf bonobo
libghttp www/libghttp  
libglade devel/libglade gnomedb
libxml textproc/libxml glib12
oaf devel/oaf orbit libxml
orbit devel/ORBit glib12
pygnome x11-toolkits/py-gnome gtkhtml pygtk
pygtkx11-toolkits/pygtkx11-toolkits/py-gtk gnomelibs gdkpixbuf libglade

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; diff --git a/en/gnome/docs/gnome2_porting.sgml b/en/gnome/docs/gnome2_porting.sgml index f34b07c9c4..18bfd71cd3 100644 --- a/en/gnome/docs/gnome2_porting.sgml +++ b/en/gnome/docs/gnome2_porting.sgml @@ -1,349 +1,349 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

To see how to utilize these components, please examine the example Makefile.

- + - + - + - + - + - + - + - + - +
COMPONENT ASSOCIATED PROGRAM IMPLIED COMPONENTS
atk accessibility/atk glib20
atspi accessibility/at-spi gail libbonobo
desktopfileutils devel/desktop-file-utils glib20
eel2x11-toolkits/eel2x11-toolkits/eel gnomemenus gnomedesktop gail
evolutiondataserver databases/evolution-data-server libgnome
gail accessibility/gail libgnomecanvas
gal2 x11-toolkits/gal2 gnomeui libgnomeprintui
gconf2 devel/gconf2 orbit2 libxml2 gtk20 linc
glib20 devel/glib20 gnometarget pkgconfig
gnomecontrolcenter2sysutils/gnomecontrolcenter2sysutils/gnome-control-center gnomedesktop metacity nautilus2
gnomedesktopx11/gnomedesktopx11/gnome-desktop libgnomeui gnomedocutils
gnomedocutilstextproc/gnomedocutilstextproc/gnome-doc-utils libxslt
gnomemenus x11/gnome-menus gnomevfs2
gnomepanelx11/gnomepanelx11/gnome-panel gnomedesktop libwnck
gnomespeechaccessibility/gnomespeechaccessibility/gnome-speech libbonobo
gnomevfs2devel/gnomevfs2devel/gnome-vfs gconf2 libbonobo gnomemimedata
gtk20 x11-toolkits/gtk20 intltool atk pango
gtkhtml3 www/gtkhtml3 gail libgnomeui libgnomeprintui
gtksourceview x11-toolkits/gtksourceview libgnome libgnomeprintui
libartlgpl2graphics/libartlgpl2graphics/libart_lgpl pkgconfig
libbonobo devel/libbonobo libxml2 orbit2
libbonoboui x11-toolkits/libbonoboui libgnomecanvas libgnome
libgailgnome x11-toolkits/libgail-gnome libgnomeui atspi
libgda2 databases/libgda2 glib20 libxslt
libgda3 databases/libgda3 glib20 libxslt
libglade2 devel/libglade2 libxml2 gtk20
libgnome x11/libgnome libxslt gnomevfs2 esound
libgnomecanvas graphics/libgnomecanvas libglade2 libartlgpl2
libgnomedb databases/libgnomedb libgnomeui libgda3
libgnomeprint print/libgnomeprint libbonobo libartlgpl2 gtk20
libgnomeprintui x11-toolkits/libgnomeprintui libgnomeprint libgnomecanvas
libgnomeui x11-toolkits/libgnomeui libbonoboui
libgsf devel/libgsf gconf2 glib20 libxml2
libgsf_gnome devel/libgsf-gnome libgsf gnomevfs2
libgtkhtml www/libgtkhtml libxslt gnomevfs2 gail
libidl devel/libIDL glib20
librsvg2 graphics/librsvg2 libgsf gtk20
libwnck x11-toolkits/libwnck gtk20
libxml2 textproc/libxml2 pkgconfig
libxslt textproc/libxslt libxml2
libzvt x11-toolkits/libzvt gtk20
linc net/linc glib20
metacity x11-wm/metacity gconf2 glade2
nautilus2x11-fm/nautilus2x11-fm/nautilus librsvg2 eel2 gnomedesktop
nautiluscdburner sysutils/nautilus-cd-burner nautilus2
orbit2 devel/ORBit2 libidl
pango x11-toolkits/pango glib20
pygnome2 x11-toolkits/py-gnome2 libgnomeui pygtk2
pygnomedesktop x11-toolkits/py-gnome-desktop pygnome2 libgnomeprintui gtksourceview libwnck nautiluscdburner
pygnomeextras x11-toolkits/py-gnome-extras pygnome2 libgtkhtml
pygtk2 x11-toolkits/py-gtk2 libglade2
vte x11-toolkits/vte gtk20

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; diff --git a/en/gnome/docs/gnome_porting.sgml b/en/gnome/docs/gnome_porting.sgml index 0311b2c537..657d89c942 100644 --- a/en/gnome/docs/gnome_porting.sgml +++ b/en/gnome/docs/gnome_porting.sgml @@ -1,151 +1,151 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

To see how to utilize these components, please examine the example Makefile.

- +
COMPONENT ASSOCIATED PROGRAM IMPLIED COMPONENTS
esound audio/esound  
gnomehack gnomehack makes common GNOME Makefile substitutions that nearly every GNOME port requires to fit into the proper mtree structure.
gnomehier gnomehier installs all the directories needed for both the GNOME 1 and 2 desktops. Only include this option if your port calls @dirrm on one of the directories listed in the plist for gnomehier.
gnomemimedatamisc/gnomemimedatamisc/gnome-mime-data gnomehier pkgconfig
gnomeprefix gnomeprefix sets some CONFIGURE_ARGS to ensure data is placed properly within the GNOME hierarchy. gnomehier
gnometarget gnometarget sets ${CONFIGURE_TARGET} for ports whose configure script does not figure it out automatically.  
intlhack intlhack registers a dependency upon textproc/intltool and patches broken intltool-merge.in implementations. intltool
intltool intltool registers a BUILD_DEPENDS on textproc/intltool.  
lthack lthack prevents the installation of .la files and ensures that ${PTHREAD_LIBS} will be passed to the linker. NOTE: lthack is DEPRECATED, and USE_AUTOTOOLS=libtool:15 should be used instead. See the libtool section of the porting guide for more details.  
ltverhack ltverhack noralizes shared object versions so that they do not change needlessly. Using ltverhack keeps shared object versions in line with what they should be and what they end up being on other operating systems. In order to use ltverhack the port must define USE_AUTOTOOLS=libtool:15.  
pkgconfig pkgconfig registers a dependency upon - devel/pkgconfig to make sure it is installed. + devel/pkg-config to make sure it is installed.  
referencehack referencehack is designed for ports that install API reference documentation. These ports should use referencehack then another port with a -reference suffix should be created to install this documentation. See devel/glib20 and devel/glib20-reference for an example.  

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; diff --git a/en/gnome/docs/porting.sgml b/en/gnome/docs/porting.sgml index 07ced18ec6..30eae12fa8 100644 --- a/en/gnome/docs/porting.sgml +++ b/en/gnome/docs/porting.sgml @@ -1,369 +1,369 @@ - + %navincludes; %gnomeincludes; %includes; ]> &header;

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

Example Makefile

There is an example Makefile for a GNOME port, which uses many of the tricks outlined in this document. Please feel free to use it as a guide for creating your own ports.

GNOME Makefile Macros

GNOME applications under FreeBSD use the USE_GNOME infrastructure. To specify which components of the GNOME system your port needs in order to build, simply list them all as a space-separated list. For example:

 USE_X_PREFIX=	yes
 USE_GNOME=	gnomeprefix gnomehack libgnomeui
 	  

The USE_GNOME components are divided into the following two lists:

If your port needs only GTK2 libraries, the following is the shortest way to define this:

 USE_X_PREFIX=	yes
 USE_GNOME=	gtk20
 	  

If your port needs only GTK1 libraries, the following is the shortest way to define this:

 USE_X_PREFIX=	yes
 USE_GNOME=	gtk12
 	  

Even if your application needs only the GTK libraries, other USE_GNOME components may be useful. Please scan the entire list to make sure your port uses all relevant components.

Once you have finished with your port, it is a good idea to verify that your port depends on the correct list of components. To see a list of what packages your port will actually require, use the command make package-depends from within your port's directory.

To aid in creating the list of necessary components, it can be helpful to examine the output of make configure. At the end of the checking for... list, there will be a line similar to this:

 checking for	libgnomeui-2.0 >= 2.0.0		cspi-1.0 >= 1.1.7
 libspi-1.0 >= 1.1.7		libbonobo-2.0 >= 2.0.0	atk >= 1.0.0
 gtk+-2.0 >= 2.0.0	gail	libwnck-1.0		esound... yes
 

This is a list of the components upon which this application relies to build. Pay close attention to the hierarchical layout of the USE_GNOME system; many components are implied from other USE_GNOME directives. In the above example, USE_GNOME= libgnomeui implies use of libbonoboui, which implies libgnomecanvas, which implies libglade2, which implies gtk20. Thus, even though gtk+-2.0 appears in the list of requisite components, gtk20 can be eliminated from the USE_GNOME list. There are a number of other such redundancies that can be eliminated from this list.

For the above list (taken from sysutils/gok), the following is defined in the Makefile:

 USE_GNOME=	gnomehack gnomeprefix libgnomeui atspi libwnck
 

GNOME 1 Desktop vs. GNOME 2 Desktop

In the beginning, there was only GNOME 1. When the GNOME 2 desktop came around, maximum backwards compatability was ensured, within reason. GNOME 1 applications can run fine under the GNOME 2 desktop, provided that the applications do not utilize functionality specific to the GNOME 1 desktop environment.

The GNOME 1 desktop, and all applications that will not run under the GNOME 2 desktop, have been removed from the ports tree.

What this means for you, as an application porter, is simply that you should not add GNOME 1-specific applications to the ports tree.

If you wish to determine which version of the GNOME desktop environment is present on a user's machine, you can check the value of GNOME_DESKTOP_VERSION. This variable is set to either "1" or "2" depending upon whether the GNOME 1 or GNOME 2 desktop is installed.

Optional GNOME Dependencies

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 for each component from the list above that your port can use. 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 ${HAVE_GNOME:Mgnomepanel}!=""
 	USE_GNOME+=	gnomeprefix gnomepanel
 	CONFIGURE_ARGS+=	--with-gnome
 	PKGNAMESUFFIX=	-gnome
 	PLIST_SUB=	DATADIR="share/gnome"
 .else
 	CONFIGURE_ARGS+=	--without-gnome
 	PLIST_SUB=	DATADIR="share"
 .endif
 
 .include <bsd.port.post.mk>
           

Here, WANT_GNOME tells the ports system to check for the existence of the various GNOME components listed above. For each component found, its name is appended to HAVE_GNOME. Since this port can use gnomepanel, we check HAVE_GNOME to see if it contains gnomepanel (for more on the :Mpattern make syntax, please refer to the make(1) manpage). If gnomepanel is found, then it is added the list of USE_GNOME dependencies, and the port-specific --with-gnome CONFIGURE_ARG is passed. In an old GNOME infrastructure, PKGNAMESUFFIX was automatically adjusted by the proper USE_* macro. Now it is up to the individual porter to do this. Our example port appends -gnome to the port name to indicate it has been built with GNOME support. The same is true for the DATADIR PLIST_SUB. The individual porter must decide when do the DATADIR substitution. A good rule of thumb is to add the DATADIR PLIST_SUB when using the gnomeprefix component.

Note: You cannot add extra default USE_GNOME components after the .include <bsd.port.pre.mk>. That is, the following is wrong :

 .include <bsd.port.pre.mk>
 
 .if ${HAVE_GNOME:Mgnomelibs}!=""
 	USE_GNOME+=	libgnome
 .else
 	USE_GNOME+=	gtk12  # WRONG!
 .endif
 	  

This will make the build system think that GNOME is desired, and mark the pkg-plist accordingly, thus breaking package builds. If you need to add default USE_GNOME components, do so above the .include <bsd.port.pre.mk> line.

To enforce use of optional GNOME dependencies unconditionally, you can add WITH_GNOME= yes to /etc/make.conf or on the make command line. This will always return true when checking for optional GNOME dependencies. If you want the system to always return false when checking for optional GNOME dependencies, you can add WITHOUT_GNOME= yes to /etc/make.conf or to the make command line.

More information on the USE_GNOME infrastructure can be found by looking at the source and comments of ${PORTSDIR}/Mk/bsd.gnome.mk.

OMF Installation

A large number of GNOME applications (especially GNOME 2 applications) install Open Source Metadata Framework (OMF) files which contain the help file information for those applications. These OMF files require special processing by ScrollKeeper in order for applications like Yelp to find help documentation. In order to accomplish proper registry of these OMF files when installing GNOME applications from packages, you should make sure that omf files are listed in pkg-plist and that your Makefile has this defined:

 INSTALLS_OMF=yes
             

GConf Schema Installation

GConf is the XML-based database that virtually all GNOME applications use for storing their settings. This database is defined by installed schema files that are used to generate %gconf.xml key files. Previously, these schema files and %gconf.xml key files were listed in the port's pkg-plist. Since this proved to be problematic, handling of GConf schemas was changed to something similar to that of MANn files. That is, for each schema file installed by your port, you must have the following listed in the Makefile:

 GCONF_SCHEMAS=	my_app.schemas my_app2.schemas my_app3.schemas
 	  
-

For example in audio/gnomemedia2:

+

For example in audio/gnome-media:

 GCONF_SCHEMAS=	CDDB-Slave2.schemas gnome-audio-profiles.schemas \
 		gnome-cd.schemas gnome-sound-recorder.schemas
 	  

The schema files and %gconf.xml key files should not be in the pkg-plist. If you notice that the port doesn't has any %gconf.xml key files, but has schema files then you should not be use GCONF_SCHEMAS. It means, this port has broke either schema files or installation of GConf.

Shared MIME database

If your port install files like application/x-portname.xml in share/mime, you have to add these two lines at the end of the pkg-plist:

 @exec %%LOCALBASE%%/bin/update-mime-database %D/share/mime
 @unexec %%LOCALBASE%%/bin/update-mime-database %D/share/mime
 	  

Also make sure shared-mime-info is among the dependencies of your port. If your port use gtk20, you will have shared-mime-info indirectly. You can check indirect dependencies with make describe.

Example port to look at: deskutils/drivel

Desktop database

Some ports provide MIME definitions in their .desktop files. If your port install .desktop file into share/gnome/applications and there is a line starting with MimeType in it, you need to update desktop database after install and deinstall. This database is represented by share/gnome/applications/mimeinfo.cache file. Add dependency on GNOME component desktopfileutils and these lines to the end of pkg-plist:

 @exec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
 @unexec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
 	  

Also add following to the post-install target in port's Makefile:

 -@update-desktop-database
 	  

Example port to look at: editors/leafpad

Libtool Issues

Most, if not all, GNOME applications depend on GNU's libtool. They also use the GNU configure system. If your port installs shared libraries, and includes an ltmain.sh script in its ${WRKSRC} directory, you should add USE_LIBTOOL_VER=15 to your port's Makefile. However, if your port uses custom LIBTOOLFLAGS, you must use USE_INC_LIBTOOL_VER=13 instead. If you have to use USE_INC_LIBTOOL_VER, you must also add lthack to USE_GNOME. In general, though, lthack is deprecated, and should only be used if absolutely necessary.

Distfiles

To separate GNOME 2 distfiles from the GNOME 1 distfiles, and to keep the distfiles directory clean, GNOME 1 ports that download their distfiles from ${MASTER_SITE_GNOME} must add the following to their Makefile:

 DIST_SUBDIR=    gnome
           

GNOME 2 ports that download their distfiles from ${MASTER_SITE_GNOME} must include the following in their 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; diff --git a/en/gnome/gnomelogalyzer.sh b/en/gnome/gnomelogalyzer.sh index 22e45ba51e..295775d1a7 100644 --- a/en/gnome/gnomelogalyzer.sh +++ b/en/gnome/gnomelogalyzer.sh @@ -1,272 +1,272 @@ #!/bin/sh #- # Copyright (c) 2004-2005 FreeBSD GNOME Team # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Heh. "Tort." # # $MCom: portstools/gnomelogalyzer.sh.in,v 1.12 2005/06/28 05:47:54 adamw Exp $ -# $FreeBSD: www/en/gnome/gnomelogalyzer.sh,v 1.6 2005/08/14 07:01:28 adamw Exp $ +# $FreeBSD: www/en/gnome/gnomelogalyzer.sh,v 1.7 2006/01/07 06:14:16 mezz Exp $ # # This script uses some simple yet effective heuristics to analyse # the output of a port's build failure, and spit out what is most # likely the problem and the solution. (Hint: the solution is invariably # to run portupgrade -a, except for when it isn't.) # You can set the environment variable VERBOSE to something non-null # to see debugging messages. They're probably not all that exciting. help(){ echo "Usage: `basename $0` [BUILDLOG]" echo echo "Where BUILDLOG is an optional log of stdout and stderr" echo "from a failed GNOME ports build. For example," echo "\"make 2>&1 | tee /path/to/BUILDLOG\" (for sh/ksh/bash/zsh) or" echo "\"make |& tee /path/to/BUILDLOG\" (for csh/tcsh)." echo echo "You can also just run `basename $0` and it will take care" echo "of the buildlog-generating business." } debug(){ if [ -n "${VERBOSE}" ]; then if [ "$1" = "-n" ]; then echo -n "$2" else echo "$1" fi fi } # Are we blue in the face yet? soln_portupgrade(){ if echo "$1" | grep -q "^-f" ; then echo echo "To correct this problem, make sure that sysutils/portupgrade is installed, and then run the command \"portupgrade $1\"." | fmt 75 79 else if [ -n "$1" ]; then specific="either run \"portupgrade $1\", or " fi echo echo "To correct this problem, make sure that sysutils/portupgrade is installed, and then ${specific}upgrade all out-of-date ports with the command \"portupgrade -a\"." | fmt 75 79 fi } get_tmpdir() { if [ -n "${MC_TMPDIR}" -a -d "${MC_TMPDIR}" ]; then tmpdir="${MC_TMPDIR}" elif [ -n "${TMPDIR}" -a -d "${TMPDIR}" ]; then tmpdir="${TMPDIR}" elif [ -d "/var/tmp" ]; then tmpdir="/var/tmp" elif [ -d "/tmp" ]; then tmpdir="/tmp" elif [ -d "/usr/tmp" ]; then tmpdir="/usr/tmp" else return 1 fi echo ${tmpdir} return 0 } get_tmpfile() { template=$1 tmpfile="" tmpfile="`get_tmpdir`/${template}.XXXXXX" tmpfile=`mktemp -q ${tmpfile}` echo ${tmpfile} return 0 } ########### # # main() debug -n "gnomelogalyzer ($0), ver. " debug `echo "$MCom: portstools/gnomelogalyzer.sh.in,v 1.12 2005/06/28 05:47:54 adamw Exp $" | cut -f3 -d' '` echo; # for good measure. # check to make sure that the build log has been specified if [ ! -z "$1" ]; then if [ ! -f "$1" ]; then echo "Error: Please supply a valid build log." help exit 1 fi buildlog="$1" else if [ ! -f ./Makefile ]; then echo "Error: You must run `basename $0` from within the" echo "directory of the failed port, or you must supply a" echo "valid build log." help exit 1 fi buildlog=`get_tmpfile logalyze` echo -n "Generating build log. Please wait... " if [ -n "${VERBOSE}" ]; then /bin/sh -c "/usr/bin/make 2>&1" | tee ${buildlog} else /bin/sh -c "/usr/bin/make 2>&1" >> ${buildlog} fi echo "done." echo "" fi ###### # # TEST: Invalid pkg-config version # -# SOLUTION: portupgrade pkgconfig +# SOLUTION: portupgrade pkg-config debug -n "Checking pkg-config version... " if grep -q '\*\*\* Your version of pkg-config is too old.' ${buildlog} ; then echo "You have an outdated version of pkg-config installed." - soln_portupgrade "pkgconfig" + soln_portupgrade "pkg-config" exit else debug "OK" fi ##### # # TEST: Out-of-date libraries # # SOLUTION: portupgrade debug -n "Checking for out-of-date libraries... " if grep -qE 'error: Library requirements' ${buildlog} && grep -qE ' not met;' ${buildlog} ; then echo "One or more GNOME libraries are too out-of-date." soln_portupgrade exit else debug "OK" fi ##### # # TEST: b0rked intltool # # SOLUTION: portupgrade -f intltool debug -n "Checking for incomplete intltool installation... " if grep -q 'error: XML::Parser perl module is required for intltool' ${buildlog} ; then echo "Your installation of intltool is incomplete." soln_portupgrade "-f intltool" echo echo "If portupgrade does not work, and you recently updated Perl, you should reinstall all of your Perl modules. The best way to do this is with the command: portupgrade -f p5-\*" | fmt 75 79 exit else debug "OK" fi ##### # # TEST: Pango without libXft # # SOLUTION: portupgrade -f libXft && portupgrade -f pango debug -n "Checking for a pango without libXft support... " if grep -q 'error: Xft Pango backend is required for x11 target' ${buildlog} ; then echo "Your Pango installation lacks libXft support." soln_portupgrade "-f -N libXft && portupgrade -f pango" exit else debug "OK" fi ##### # # TEST: Libtool out-of-date # # SOLUTION: portupgrade libtool-1.5\* debug -n "Checking for an out-of-date libtool15... " if grep -q 'libtool15: link: `1000:0' ${buildlog} ; then echo "Your libtool15 is out-of-date." soln_portupgrade "libtool-1.5\*" exit else debug "OK" fi ##### # # TEST:FreeType2 out-of-date # # SOLUTION: portupgrade freetype2 debug -n "Checking for an out-of-date freetype2... " if grep -q "struct FTC_ImageTypeRec_' has no member named" ${buildlog} || \ grep -q '\#error "`ft2build.h' ${buildlog} ; then echo "Your freetype2 is out-of-date." soln_portupgrade "-f freetype2" exit else debug "OK" fi ##### # # Catch-all # debug "Giving up..." echo "The cause of your build failure is not known to `basename $0`. Before e-mailing the build log to the FreeBSD GNOME team at freebsd-gnome@FreeBSD.org, TRY EACH OF THE FOLLOWING:" | fmt 75 79 echo echo " * If you are generating your own logfile, make sure to generate it with" echo " something similar to:" echo " \"make 2>&1 | tee /path/to/logfile\" (sh/bash/ksh/zsh) or" echo " \"make |& tee /path/to/logfile\" (csh/tcsh)" echo " * Make sure your cvsup(1) configuration file specifies the 'ports-all'" echo " collection" echo " * Run cvsup(1) and attempt the build again" echo " * Check /usr/ports/UPDATING for information pertinent to your build" echo " failure" echo " * 99% of the commonly reported build failures can be solved by" echo " running \"portupgrade -a\"" echo " * Read the FAQs at http://www.FreeBSD.org/gnome/" echo " * Search the archives of freebsd-gnome@FreeBSD.org. Archives can be" echo " searched at http://www.freebsd.org/gnome/index.html#search" echo echo "If you have not performed each of the above suggestions, don't bother asking for help. The chances are good that you'll simply be told to perform one of the aforementioned steps." | fmt 75 79 exit # Here there be tacos. diff --git a/en/gnome/includes.navgnome.sgml b/en/gnome/includes.navgnome.sgml index 1d1aea8727..1fef297178 100644 --- a/en/gnome/includes.navgnome.sgml +++ b/en/gnome/includes.navgnome.sgml @@ -1,25 +1,25 @@ - +

Section Navigation

'>