This HowTo gives instructions for building Xastir from Github on Debian Lenny with all supported libraries enabled. It assumes the user already has a working installation of Lenny. Internet connectivity is also assumed.
Attention! Debian Lenny is very old - it is recommended to upgrade to the current stable version.
If you already installed the binary version
Note: the description below on what to do if you already installed the binary version is nearly verbatim from the HowTo for Ubuntu 6.10 and 7.04. Although I expect it will apply to Debian Lenny, I have not tried installing the binary version in Lenny and then removing it using this procedure.
If you installed a binary version of xastir from the Mepis/Debian repositories, you'll have a somewhat outdated version, and it will have installed into /usr instead of /usr/local. The source install described on this page will install into /usr/local, so you'll want to remove your binary install first before following these directions.
If you did a lot of map configuration with the binary install, all of your maps will be in /usr/share/xastir/maps. You'll need to copy those to a safe place before removing the binary install:
mkdir /tmp/maps cp -r /usr/share/xastir/maps/* /tmp/maps
Then remove the binary package:
su (enter your root password when prompted) apt-get remove xastir exit
You can then follow the instructions below to re-install xastir to /usr/local from sources. Once you're done, copy your maps back to the new installation directory:
su (enter your root password when prompted) cp -r /tmp/maps/* /usr/local/share/xastir/maps exit
Then you need to edit your ~/.xastir/config/xastir.cnf file to change all occurances of "/usr/share" to "/usr/local/share"
You'll be back in business with a more easily updated xastir.
Preparing the system
First, make sure you have a working Debian Lenny installation. Also check that you can access the Internet. As always, you should also back up whatever is essential in your installation in case anything goes wrong.
I recommend updating your installed packages to the latest versions first. This can be done using APT:
su (enter your root password when prompted) apt-get update
Optionally you can upgrade your existing software using the following command:
If there was a kernel upgrade or something you may want to reboot your system before proceeding.
Start installing packages
- Get the basic set of build tools:
apt-get install build-essential
- Get the libraries essential for building xastir:
apt-get install git autoconf automake xorg-dev libmotif-dev graphicsmagick gv libxp-dev libcurl4-openssl-dev
The above packages are required for the most basic minimum build of xastir. gv is not strictly required, but if you don't install it you will be unable to print. Note that this graphiscsmagick package is not the one that gives you on-line map support, it's the one that provides the "convert" utility needed to create the postscript that gv will use to print. This package and gv are both required to be able to print from xastir even with minimal map support.
- Get additional libraries that will help for extra features:
apt-get install gpsman gpsmanshp libpcre3-dev libdb4.6-dev python-dev libax25-dev shapelib libshp-dev festival festival-dev libgraphicsmagick1-dev
Note: after fetching the set of packages above, be sure to type exit at the terminal to exit out of root mode.
Get XASTIR source code from Github
In this method, you get your source code directly from the "repository" that the developers use to work on the software. See Notes:CVS for details. Here's the step-by-step method for getting it this way.
You can make different choices here for where you want to store your code. I'm putting it in a src directory under my home directory:
mkdir ~/src cd ~/src git clone https://github.com/Xastir/Xastir.git
The last command could take a while to finish if you're on a slow link, as there are a lot of files to download.
- Run bootstrap to generate Makefile.am and configure:
cd Xastir ./bootstrap.sh
Build the fully-enabled xastir
To get a fully-functional version of xastir, you need to install a few more libraries. These are the proj.4 library and the geotiff library. The Debian repositories have them, but the version of proj.4 they have is broken --- it is improperly compiled without datum grid support. Because libgeotiff depends on proj, installing them both from the official repository is a problem.
The Debian reposistories have a version of proj.4, but this version was not built correctly with the NAD27/NAD83 datum conversion grids. These grids are not needed for Xastir, but if you use proj.4 for any other GIS tools (including GDAL), you need to build proj.4 (and everything that depends on it) from source instead.
- Download the proj.4 source
As of this writing, the latest proj.4 source can be downloaded like this:
cd ~/src wget http://download.osgeo.org/proj/proj-4.7.0.tar.gz wget http://download.osgeo.org/proj/proj-datumgrid-1.4.tar.gz
- Unpack proj.4
tar zxvf proj-4.7.0.tar.gz cd proj-4.7.0/nad tar xzf ../../proj-datumgrid-1.4.tar.gz cd ..
- Build and install proj.4
./configure make su (enter root password when prompted) make install ldconfig exit
- Download the libgeotiff source
As of this writing, the latest libgeotiff source can be downloaded like this:
- Unpack libgeotiff
tar zxvf libgeotiff-1.2.5.tar.gz cd libgeotiff-1.2.5/
- Build and install libgeotiff
./configure --with-ld-shared="gcc -shared" make su (enter root password if prompted) make install ldconfig exit
This is a very optional install, and for most users is unnecessary. Very few users will ever need it, as Xastir's use of GDAL is limited to only a small handful of unusual map types. It is recommended that most users skip this step.
- Download the GDAL source
As of this writing, the latest GDAL source can be downloaded like this:
- Unpack GDAL
tar zxvf gdal-2.1.1.tar.gz cd gdal-1.1.1
- Build and install GDAL:
./configure make su (enter root password when prompted) make install ldconfig exit
Note: the GDAL 'make' step seems to take a while to complete
You've now got all the libraries in place and can build the fully enabled code.
- Configure the code:
cd ~/src/Xastir mkdir build cd build ../configure
You should be rewarded with a list of features that all say "yes" after them. If you followed all the steps above, that should look like this:
xastir 2.x.x has been configured to use the following options and external libraries:
MINIMUM OPTIONS: ShapeLib (Vector maps) ................. : yes
RECOMMENDED OPTIONS: GraphicsMagick/ImageMagick (Raster maps) : yes (GraphicsMagick) pcre (Shapefile customization) ......... : yes dbfawk (Shapefile customization) ....... : yes rtree indexing (Shapefile speedups) .... : yes map caching (Raster map speedups) ...... : yes internet map retrieval ................. : yes (wget)
FOR THE ADVENTUROUS: AX25 (Linux Kernel I/O Drivers) ........ : yes libproj (USGS Topos & Aerial Photos) ... : yes GeoTiff (USGS Topos & Aerial Photos) ... : yes Festival (Text-to-speech) .............. : yes GDAL/OGR (Obtuse map formats) .......... : yes GPSMan/gpsmanshp (GPS downloads) ....... : yes
- Build the code:
make su (enter root password if prompted) make install exit
If you intend to use Kernel AX.25 networking, you should also set the installed Xastir binary to be SUID root:
su (enter root password if prompted) chmod u+s /usr/local/bin/xastir exit
- Enjoy! You now have a fully functional xastir with all features enabled. You can launch it like this:
The first time Xastir is run it'll pop up a dialog box asking you to set some station parameters.
The developers are always adding new features to Xastir and fixing bugs. You'll likely want to update your Xastir semi-regularly. Fortunately for you, you don't have to repeat all of the above steps each time. Updating is actually very simple:
Periodically, you can update the code by going into the repo directory and executing:
then compiling normally per the "Compiling and Installing Xastir" instructions shown above. Note to developers only: "git pull" is risky for you if you are modifying code.
-OR- you can type:
which will do EVERYTHING for you from the "git pull" to the "chmod" command. This will be adequate if you don't need support for GeoTiff maps, which require the CPPFLAGS="-I/usr/include/geotiff" statement when you run the configure script.
You have to start the festival server by hand in a shell window before starting xastir.
festival --server &
Clicking File->Configure->Speech in xastir, I could get it to talk just by clicking the "Test" button in the dialog.