Planner Installation Guide

This guide provides instructions on builing Planner from source code, specifically for the Fedora Core distribution, but can be applied to other distributions as well.

We'll gladly accept contributions on how to install for other distributions and/or operating systems.

Installing from Source Tarball

This guide is written based on Planner 0.12 and the Fedora Core 2 Linux distribution. Other combinations of Linux distribution or Planner version will likely require adjustments in installation procedures such as the need to satisfy package dependencies not listed here.

This guide assumes that you're logged in as root, that you download all files into a folder named /root/downloads, and unless otherwise specified, navigation begins from the /root folder.

Base System Installation

To successfully build Planner from source, you need to start with a Linux system with some basic requirements installed. This Guide is focused on the Fedora Core distribution, so the package groups listed here are specific to that distribution. If you are not on Fedora, just follow this guide - if you run into problems, have a look at the chapter "known pitfalls".

  • The Gnome Desktop environment
  • Development Tools
  • X Software Development
  • Gnome Software Development

If you are starting with a fresh install of Fedora Core, make sure you select all of these packages. If you have an existing installation and these are not all installed, then you can use the system-config-packages application to install them. Make sure you're logged in as root, then choose Applications->System Settings->Add/Remove Applications, or type the command system-config-packages from a terminal window.

Planner Dependencies

The prerequisites that Planner needs for basic operation are:

 glib-2.0 >= 2.4.0
 gobject-2.0 gmodule-2.0
 gtk+-2.0 >= 2.4.0
 libgnomecanvas-2.0 >= 2.6.0
 libgnomeui-2.0 >= 2.6.0
 libglade-2.0 >= 2.4.0
 libbonoboui-2.0 >= 2.6.0
 libgnomeprintui-2.2 >= 2.6.0
 gnome-vfs-2.0 >= 2.6.0
 gconf-2.0 >= 2.6.0

Most of these requirements are met by Fedora Core 2, except for libglade-2.0 and libgnomeprintui-2.2. If you'd like to confirm this, use the rpm command:

 # rpm -qa | grep libglade
   pygtk2-libglade-2.2.0-1
   libglade2-devel-2.3.6-1
   libglade-0.17-13.2.1
   libglade-devel-0.17-13.2.1
   libglade2-2.3.6-1

RPM is Red Hat's packaging utility. The -qa qualifiers will list all installed packages, and piping the result through grep gives us an easy way to find packages without knowing their exact name.

The output clearly shows that libglade2 is at version 2.3.6-1, and we need version 2.4 or higher. You can repeat this for each of the required packages to be sure of what's needed on your system.

Building Dependencies

The source files for all of the prerequisites that Planner needs (as well as Planner itself) can be found at http://ftp.gnome.org/pub/GNOME/sources/. Each of the packages are listed by name under this URL. To get a package, simply find its name and choose that folder. The next set of folders listed is the version number. Choose the folder for the version that Planner requires. You may of course choose a more recent version than required if its listed, but the risk in doing that is that you may need to install additional packages if the one you chose requires more recent versions than you have on your system, so its safest to go with what's required and no more.

Building libglade

Assuming you've successfully downloaded libglade-2.4.0.tar.gz, you first need to unpack it.

 # tar -xzvf downloads/libglade-2.4.0.tar.gz

This command will unpack the file into a new directory named libglade-2.4.0 change your current directory to that one, and configure, make, and make install:

 # cd libglade-2.4.0
 # ./configure
 # make
 # make install

Each of these commands produces some fairly verbose output, and though its not necessary to understand it all, it is important to visually scan the messages for errors that have occurred before proceeding with the next step.

Configure checks for dependencies required to perform the build and creates the Makefile and other files required to compile the software.

Make compiles the software, and make install copies the resulting executables and other files to their target directories.

Setting PKG_CONFIG_PATH

The tool pkg-config is used for managing library compile/link flags. When you compile a library such as libglade, a file named libglade-2.0.pc is installed. It holds information needed for other programs that depend on it to successfully find and link to it.

Check the output from the make install you executed in the previous section. You should see something like this:

 test -z "/usr/local/lib/pkgconfig" || mkdir -p -- .  "/usr/local/lib/pkgconfig"  
 /usr/bin/install -c -m 644 'libglade-2.0.pc'
 '/usr/local/lib/pkgconfig/libglade-2.0.pc'

This line shows that the libglade-2.0.pc file was installed in the /usr/local/lib/pkgconfig directory. We need to make sure that when we compile other programs and libraries that require libglade know where to find this file.

Note

If you can't find the information above in the output of your make install, then you could use the locate command to find the file. For example: locate libglade-2.0.pc. You may need to update locate's database first using the updatedb command.

To see if pkg-config is finding the libraries you just compiled, use the following command:

 # pkg-config --modversion libglade-2.0
   2.3.6

As you can see, pkg-config returned the version 2.3.6 - not 2.4.0! So when you go to run configure on the next package that needs libglade-2.0 => 2.4, it will only see the old version, and barf some error message at you. To fix this, set the PKG_CONFIG_PATH environment variable to the correct folder:

 # export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

If you repeat the pkg-config command now, you get:

 # pkg-config --modversion libglade-2.0
   2.4.0

That's better.

Building Other Dependencies

Now that we've set up our PKG_CONFIG_PATH environment variable, the rest of our setup should run smoothly. The other dependencies (pango 1.5, libgnomeprint 2.6 and libgnomeprintui 2.6) are built in the same manner as we did for libglade-2.0. Let's summarize the steps for brevity.

  • Download the package source - from http://ftp.gnome.org/pub/GNOME/sources/.

  • Unpack the package: # tar -xzvf downloads/[packagename]
  • Change directory: # cd [packagedir]
  • Run configure: # ./configure
  • Run make: # make
  • run make install: # make install
  • Return to your home directory: # cd

Building Planner

If you're building Planner 0.12 and Fedora Core 2, then you've satisfied the dependencies for building Planner with its default features, and the procedure is the same as it was with building the dependencies: Download, unpack, configure, make, and make install.

Once installed, Planner can be launched with the command Planner.

If you're building either some other version of Planner, or not using Fedora Core 2, then you'll discover the dependent packages when you get to the configure step. As an example and a convenient lead-in to the next topic, I'll ask configure to enable an extra feature - the database functionality.

 # ./configure --enable-database
   ...
   checking for libgda >= 1.0... Package libgda was not found in 
   the pkg-config search path.
   Perhaps you should add the directory containing `libgda.pc'
   to the PKG_CONFIG_PATH environment variable
   No package 'libgda' found

As you can see, enabling the database feature adds a dependency on libgda, which will need to be satisfied before configure will run successfully with this option enabled.

Building Planner with Database Support

Since compiling Planner with database support requires libgda, go ahead and download it from http://ftp.gnome.org/pub/GNOME/sources/. I used version 1.1.6. After you unpack it and run configure, you'll notice that not much is enabled:

 Configuration summary
   Installation prefix = /usr/local
   Providers
      XML = yes
      Berkeley DB = yes
      FireBird = no
      FreeTDS = no
      IBM DB2 = no
      MDB (MS Access) = no
      MySQL = no
      mSQL = no
      ODBC = no
      Oracle = no
      PostgreSQL = no
      SQLite = no
      Sybase = no
      xBase (dBase, Clipper, FoxPro) = no
      LDAP = yes

Planner's default database is PostgreSQL, so you need that installed. Make sure to install it with your distributions package system. When PostgreSQL is installed, return to the libgda directory and rerun configure. If PostgreSQL is installed correctly, you should see the output showing PostgreSQL support switched on. Go ahead and do the make and make install .

Now you can switch back to your Planner directory and rerun configure --enable-database. You'll see the output confirm that database support will be included in the build:

 Planner prefix                : /usr/local
 Build API docs                : no
 Python bindings               : yes
 Python plugin                 : no
 Dotnet bindings               : no
 Database/GDA support          : yes
 Evolution Data Server support : no

We're in the home stretch. Now run make and make install (by now I presume you're noticing a pattern). Then launch the application with the command planner.

To set up a PostgreSQL database for use with Planner, follow the instructions in the Planner user guide, which you can open from Planner by choosing Help->User Guide. Look for the section entitled "Configuring a Planner database".

Installing from SVN

Installation of Planner from SVN differs very little from the way you'd install it from a source tarball. So the instructions in this section will be very brief.

Essentially the only difference in building Planner from SVN is in how you get the source code. Instead of getting the source from http://ftp.gnome.org/pub/GNOME/sources/ as you do in the section called “Building Planner”, you get the source tree via the following command:

 # svn co http://svn.gnome.org/svn/planner/trunk planner

This command creates a directory named "planner" in your current directory containing the latest Planner source code from the archive.

The build process is the same as for the Planner tarball, except that instead of running configure, you run autogen.sh instead. autogen.sh will accept the same qualifiers that configure does:

 #  cd planner
 #  ./autogen.sh
 #  make
 #  make install

Known Pitfalls

This chapter lists possible problems and fitting solutions. Symptom: You are on SUSE and receive an error message like the following, e.g. during configure:

 can't read /usr/lib/libgcrypt.la: No such file or directory

However, rpm -qv libgcrypt shows you, libgcrypt is installed.

Reason: libgcrypt only contains the library files needed for dynamic linking. Solution: With your SUSE distribution, you will need to install libgcrypt-devel, containing the library files for static linking. Install it the following way:

 yast2 -i libgcrypt-devel

Symptom: You are on SUSE and receive an error message like the following. e.g. during configure:

 grep: /opt/gnome/lib/libgnome-keyring.la: No such file or directory 
 /usr/bin/sed: can't read /opt/gnome/lib/libgnome-keyring.la: No such file or 
 directory 
 libtool: link: `/opt/gnome/lib/libgnome-keyring.la' is not a valid libtool 
 archive 
 make[3]: *** [libeggrecent.la] Error 1 

However, rpm -qv gnome-keyring shows you, gnome-keyring is installed. Reason: gnome-keyring only contains the library files needed for dynamic linking. Solution: With your SUSE distribution, you will need to install gnome-keyring-devel, containing the library files for static linking. Install it the following way:

 yast2 -i gnome-keyring-devel

Symptom: You are on SUSE Linux and have just installed planner, e.g. with ./configure && make && make install. Starting planner, you get the error message:

 planner: error while loading shared libraries: libplanner-1.so.0: cannot open shared object

Reason: This shared library cannot be found. Solution: Set the LD_LIBRARY_PATH environment variable in your .bashrc (for single user) or /etc/environment file (to correct system wide)

  LD_LIBRARY_PATH=/usr/local/lib

You can check that /usr/local/lib is the correct path on your system by doing:

  locate libplanner-1.so.0

Apps/Planner/InstallationGuide (last edited 2013-11-19 16:51:38 by WilliamJonMcCann)