• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

Davis/H03-May-2022-2,5762,055

LaCrosse/H03-May-2022-2,2961,747

callpass/H17-Oct-2021-15181

config/H07-May-2022-15,91315,360

help/H07-May-2022-11,4359,043

scripts/H03-May-2022-14,4608,351

src/H17-Oct-2021-178,081118,538

symbols/H03-May-2022-5,1585,130

.dir-locals.elH A D17-Oct-202199 54

.travis.ymlH A D17-Oct-20218 KiB310276

.vimrcH A D17-Oct-2021795 3827

AUTHORSH A D17-Oct-20211.9 KiB5946

CONTRIBUTING.mdH A D17-Oct-202120.7 KiB556404

COPYINGH A D17-Oct-202117.6 KiB341281

COPYING.LIB.LESSTIFH A D17-Oct-202124.7 KiB482399

ChangeLogH A D17-Oct-2021919.2 KiB30,06519,800

DEBUG_LEVELSH A D17-Oct-20214 KiB12388

FAQH A D17-Oct-202156 KiB1,252946

INSTALLH A D17-Oct-202161.2 KiB1,5401,170

LICENSEH A D17-Oct-202189.3 KiB1,8011,454

Makefile.amH A D03-May-20223.3 KiB10467

NEWSH A D17-Oct-20211,018 3822

National.geoH A D17-Oct-2021179 42

OSM_templateH A D17-Oct-20211.5 KiB5245

READMEH A D17-Oct-202110 KiB276203

README.CYGWINH A D17-Oct-202117.8 KiB497370

README.GITH A D17-Oct-202112 KiB333233

README.Getting-StartedH A D17-Oct-202134.3 KiB944715

README.MAPSH A D17-Oct-202162.3 KiB1,4021,097

README.OSM_mapsH A D17-Oct-20218.5 KiB215164

README.developers.mdH A D17-Oct-20218.2 KiB230168

README.mdH A D17-Oct-202110 KiB276203

README.qtH A D17-Oct-20215.9 KiB178132

README.sudoH A D17-Oct-20213.4 KiB8762

REGRESSION_TESTSH A D17-Oct-202128.9 KiB1,105736

Regional.geoH A D17-Oct-2021179 42

Sub_national.geoH A D17-Oct-2021183 42

Sub_regional.geoH A D17-Oct-2021183 42

UPGRADEH A D17-Oct-20213.7 KiB9570

USTigermap.geoH A D17-Oct-2021660 84

USTigermapBorders.geoH A D17-Oct-2021341 84

WMS_USGS_Hydrography.geoH A D17-Oct-2021228 52

WMS_USGS_ImageryOnly.geoH A D17-Oct-2021227 42

WMS_USGS_ImageryTopo.geoH A D17-Oct-2021227 42

WMS_USGS_ShadedReliefOnly.geoH A D17-Oct-2021232 42

WMS_USGS_Topo.geoH A D17-Oct-2021222 53

acinclude.m4H A D03-May-202235.3 KiB1,078954

bootstrap.shH A D17-Oct-20211.1 KiB4322

callpass.1H A D17-Oct-2021765 3023

configure.acH A D17-Oct-202129.4 KiB947792

git_commit_message_templateH A D17-Oct-2021147 83

placeholderH A D17-Oct-202185 62

stamp-h.inH A D17-Oct-202110 21

testdbfawk.1H A D17-Oct-20211.3 KiB4941

update-xastirH A D17-Oct-20212.8 KiB8053

xastir-lsb.spec.inH A D17-Oct-20213.2 KiB10998

xastir-min.spec.inH A D17-Oct-20212.3 KiB7965

xastir.1H A D17-Oct-20212.2 KiB109108

xastir.spec.inH A D17-Oct-20212.7 KiB8773

xastir_udp_client.1H A D17-Oct-20211.4 KiB4431

README

1# README
2------------------------------------------------------------------------
3
4 Please at least SKIM this document before asking questions. In fact,
5 READ IT if you've never successfully set up Xastir before. PLEASE!
6 READ IT! If you haven't read this file, and ask for help
7 expect to be told to READ the README file first! or RTFM :)
8
9 Contents:
10
11 0.    Important notice
12 1.    What is Xastir?
13 2.    How do I get Xastir & Git usage
14 3.    Quick startup
15 4.    Upgrading
16 5.    Identification notes
17 6.    OS-specific notes
18 7.    Gating weather alerts
19 8.    Boring legal stuff
20 9.    Mailing list
21 10.   Documentation
22 11.   Obtaining help
23
24------------------------------------------------------------------------
25
260. NOTICE
27
28   Please read this file carefully before trying to set up Xastir.
29   This software was developed to be used by licensed amateur radio
30   operators.  You are responsible for any information transmitted
31   or propagated on any network.
32
331. WHAT IS XASTIR?
34
35   Xastir is an open-source project to create a free X11 graphical
36   APRS(tm) client. APRS(tm) use amateur radio and Internet services to
37   convey GPS mapping, weather, and positional data in a graphical
38   application.  It has been developed by and for amateur radio
39   enthusiasts to provide real-time data in an easy to use package.
40
41   Xastir currently runs under several flavors of Linux and BSD Unix.
42   A few people are running Xastir on Solaris Unix, FreeBSD, Lindows
43   and Mac OS X, but there may be small changes necessary in order to
44   get Xastir to configure/compile on some systems.  There are a few
45   notes below which may help in this task.  Most of the developers use
46   Linux which makes it the best supported platform at the moment.
47
48   Xastir is an open-source project: Most sources, documentation, and
49   binaries are available under the GPL license, with a few modules
50   available under other open-source or public domain licenses.
51
52   More information on Xastir can be found here:
53
54   * http://xastir.org
55   * http://github.com/Xastir
56
57   including the latest releases, Git access (lets you
58   download the latest developers' code), and information on how to join
59   Xastir mailing lists.  Note that you must be subscribed in order to
60   post to the mailing lists.
61
62   SmartBeaconing(tm) was invented by Tony Arnerich (KD7TA) and Steve
63   Bragg (KA9MVA) for the HamHUD project.  They offer the algorithm to
64   other authors as long as proper credit is given and the term
65   SmartBeaconing(tm) is used.  Thanks to Tony and Steve for that
66   contribution!
67
68   -- The Xastir Group.
69
702. HOW TO GET XASTIR
71
72   Xastir is currently developed at
73   <http://github.com/Xastir/Xastir>
74   You can get the latest version of Xastir from there.
75
76   You might try <http://xastir.org> for help and information,
77   particularly the Xastir mailing list (listed near the bottom
78   of the page).
79
80   * Git USAGE
81
82     Obtain the *very latest* version of Xastir under development by
83     using Git.
84
85     See the file README.GIT for more details.
86
87   * Release version tarballs
88
89     You can get the latest packaged release source code without git
90     at https://github.com/Xastir/Xastir/releases.  Be warned that packaged
91     source tarballs may be quite old and not representative of the current
92     state of the project.  We highly recommend not using this method unless
93     you have a specific reason to stick to official releases.
94
953. QUICK STARTUP
96
97   See README.Getting-Started for a relatively quick overview of how
98   to build and use Xastir.
99
100   Check the Xastir wiki (http://xastir.org) for OS-specific guidance
101   for building Xastir on your system.
102
103   WINDOWS USERS:  Please refer to the "README.CYGWIN" file for
104   specific instructions.
105
106   See the 'INSTALL' file in the Xastir source tree for detailed
107   information about configure.
108
1094. UPGRADING
110
111   Upgrading Xastir that has been built from a recent Git clone
112   is as simple as running "git pull" in the source tree and
113   recompiling.
114
1155. IDENTIFICATION NOTES
116
117   Packet radio modes, by their very nature, typically identify
118   themselves with every transmission. Xastir has a few features
119   targeted to people who used Xastir in demonstrations and other
120   broadcasts where Xastir itself is used over radio.
121
122   Xastir can auto-ID via voice if Festival is compiled in and/or via a
123   message splashed across the screen. It does this identification
124   every 9.5 minutes if enabled. These identification modes were
125   designed for broadcasting Xastir across fast-scan television (for
126   events perhaps). Set the "ATV_SCREEN_ID" variable to 1 to enable the
127   screen message, and "SPEAK_ID" variable to 1 to enable festival to
128   speak the message. These variables are in the
129   ~/.xastir/config/xastir.cnf file.
130
1316. OS SPECIFIC NOTES
132
133   [The OS-specific notes that were here were horribly outdated
134   and not maintained.  That text has been removed.  Please
135   see the Xastir wiki at http://xastir.org in the "Installation Notes"
136   section for OS-specific build guidance.]
137
1387. GATING WEATHER ALERTS, STATIONS, OBJECTS/ITEMS TO RF
139
140   ## Gating NWS Weather Alerts to RF:
141
142   If you wish to gate NWS weather alerts from the Internet onto RF, you'll
143   need to create a text file in the users directory as
144   ~/.xastir/data/nws-stations.txt
145   List each NWS station that you would like to transmit via RF. Wildcards
146   are implied for lengths of 3 or greater. Here's what an example file
147   looks like:
148
149       #
150       # Seattle, WA
151       SEANPW
152       #
153       # Portland, OR (any alert type)
154       PDX
155       #
156       # Pendleton, OR
157       PDTNPW
158       #
159       # Medford, OR
160       MFRNPW
161       #
162
163   All text should start at the beginning of the line.
164
165   Once that file is in place, you'll need to hook up to at least one
166   Internet server that is feeding you the weather alerts. You'll also need
167   to have at least one RF interface up and running with transmit enabled on
168   that interface. Make sure that "Interfaces->Disable Transmit: All" is not
169   selected.  You should now be gating NWS weather messages to RF.
170
171   Turn on igate logging and look at that log file to view what you're
172   sending out via RF. Don't forget to turn off logging or set up
173   auto-rollover of the log files, else your hard drive might fill up with
174   logging info. Auto-rollover of log files is typically accomplished via
175   CRON.
176
177   ## Gating Stations, Objects/Items to RF:
178
179   The latest code also allows gating packets from specific stations to RF
180   using the above method (except object/item packets).  You can also gate
181   objects/items to RF by name.  The same wildcarding rules apply as listed
182   above.  Callsigns or object/item names listed in this file are
183   case-insensitive, so they'll match any case in received packets.
184
185   Bob Bruninga, WB4APR, recommends gating these calls to RF:
186
187    SCOUTS, SATERN, KIDS, REDCROSS, FOUR-H, YOUTH, GUARD, MARS, JOTA
188
189   See his link: "Generic Callsigns for National Events" off this web page
190   for his current list of recommended callsigns:
191
192  http://www.aprs.org/aprs-jota.txt
193
194
1958. BORING LEGAL STUFF
196
197   Xastir is Copyright � by Frank Giannandrea. Xastir is
198   distributed according to the GNU General Public
199   License. There should be a copy of this license in the
200   file COPYING. If not, write to the Free Software
201   Foundation, Inc., 675 Mass Ave, Cambridge, MA
202   02139, USA.
203
204   As of Xastir 0.4.0 all changes made by the Xastir
205   development team to the Xastir source code and any related
206   files are Copyright (C) 2000-2019 The Xastir Group. The source
207   code will still be distributed according to the GNU General
208   Public License as Frank Giannandrea did in the past.
209
210   There is no warranty, implied or whatever. You use this
211   software at your own risk, no matter what purpose you put
212   it to.
213
214   You didn't pay for it, so don't expect magic.
215
216
2179. MAILING LIST
218
219   There are currently a couple of mailing lists about Xastir.
220   xastir@xastir.org is the one relevant for most users.
221
222   The xastir@xastir.org mail-list is dedicated to Bug
223   reports, technical questions, your thoughts or
224   suggestions on new features being added to Xastir, things
225   that should be removed or fixed, amazing problems that even
226   stump the guru's, etc... are what we want to see here.  You
227   must be subscribed to the list in order to post messages.
228
229   To subscribe to the Xastir mailing list, send email to:
230   xastir-request@xastir.org In the body of the message,
231   put "subscribe xastir"; or go to
232   http://xastir.org and click on "XASTIR MAILING LISTS" (in the
233   "Resources" section near the bottom) to subscribe.
234
235        ### DO NOT SEND FRANK EMAIL ABOUT XASTIR ###
236
237   Frank is no longer developing the Xastir code (although
238   he does put a word in every now and then) so don't bother
239   e-mailing him. If you have a serious problem, email the
240   Xastir mailing list and it will get to the coders.
241
242   Please, before posting to this list, see what things are
243   like, and when you do post, read over your post for
244   readability, spelling, and grammar mistakes. Obviously,
245   we're all human (or are we?) and we all make mistakes (heck,
246   look at this document! ;).
247
248   Open discussion and debate is integral to change and
249   progress. Don't flame others over mere form (grammar and
250   spelling), or even substantive issues either for that
251   matter. Please read and follow the mailing list rules.
252
253   A second mailing list, xastir-dev@xastir.org is intended for
254   developer's discussion.
255
25610. DOCUMENTATION
257
258    We're trying to get the documentation up to date. If you
259    feel that anything is missing here, or that anything should
260    be added etc, please email xastir@xastir.org about it,
261    thank you.
262
26311. OBTAINING HELP
264
265    Please read the file FAQ, and make sure you've followed any relevant
266    instructions in INSTALL. If the problem still exists, feel free to
267    ask on the Xastir mailing-list, as described above.
268
269
270  ------------------------------------------------------------------------
271APRS(tm) is a Trademark of Bob Bruninga
272
273Copyright (C) 1999 Frank Giannandrea
274Copyright (C) 2000-2019 The Xastir Group
275
276

README.CYGWIN

1November 2017 Update
2
3This document offers a method of running Xastir on Windows using
4the Cygwin environment.  Cygwin is a large collection of GNU and
5Open Source tools which provide functionality similar to a Linux
6distribution on Windows.
7
8Microsoft now offers their own Linux solution, using an Ubuntu
9Linux framework that runs under Windows.  However, you must be
10running a 64 bit version of Windows 10 to use the Microsoft option.
11More information may be found in the Xastir Wiki at:
12
13http://xastir.org/index.php/HowTo:Win10
14
15------------------------------------
16Installing Xastir on Windows/Cygwin:
17------------------------------------
18
19These directions were most recently validated on Windows 10, both 32
20and 64 bit, with Cygwin version 2.882.
21
22SPACES IN FILENAMES/USERNAMES:  Cygwin specifically, and Unix boxes in
23general, don't much like spaces in filenames, directories, or login
24names.  Any of these may cause you headaches while playing with Cygwin.
25Create a new login that doesn't have spaces and log in as that user
26before installing Cygwin, and whenever you intend to run Cygwin/Xastir.
27It's very likely that Xastir won't work for you if you use a login that
28has spaces embedded in it.  For additional info, see this link:
29
30   https://cygwin.com/faq/faq.html#faq.using.filename-spaces
31
32The following steps direct you through installing Cygwin, Xastir, and
33a few optional map libraries that Xastir can use.  Note that in most
34of the places below where the directions state to type commands, this
35must be done from within a Cygwin BASH shell, not a DOS window.
36Where you are asked to edit files, it's best to use Wordpad instead
37of Notepad, as Notepad doesn't do nice things to Unix-format files.
38
39Cygwin now allows you to have Xwindows apps and Windows apps all on
40the screen and visible at the same time!  The instructions here set
41it up in that manner, so you can have Xastir as just another app on
42your Windows desktop.
43
44Please subscribe to the "xastir" mailing list at "http://xastir.org".
45There are lots of helpful people there that can aid you in
46installing/running Xastir.  You must be subscribed in order to post
47messages there.
48
49[ ] Step 1)  Install Cygwin, a free download.
50
51[ ] Step 1a) Go to https://cygwin.com/install.html with your web browser.
52Choose the 64 bit or 32 bit version as appropriate for your Windows
53operating system.
54
55This will download the Cygwin network installer program onto your
56computer.  Remember where you decide to put this program.  I put
57mine in my user "Downloads" folder.
58
59Note: It will be beneficial to re-run the Cygwin network installer
60from time to time in order to keep Cygwin up to date.  Each time you run
61it you'll update any packages that have been changed since you last ran
62it.
63
64[ ] Step 1b)  Find the "setup-x86.exe" program (32 bit) or the
65"setup-x86_64" (64 bit) program.  Make note of which version you are
66using.
67
68Open a Windows Command Prompt as the Administrator and change directory
69to the directory where you just saved the setup program.
70
71If you have setup-x86.exe (32 bit), run this command to download
72and install the needed Cygwin components:
73
74setup-x86.exe --quiet-mode --packages autoconf,automake,binutils,^
75db,font-util,gcc-core,git,GraphicsMagick,gv,libcurl-devel,libdb-devel,^
76libgeotiff,libgeotiff-devel,libjasper-devel,libjbig-devel,^
77liblcms2-devel,libpcre-devel,libshp-devel,libtiff-devel,libwebp-devel,^
78libwmf-devel,libxml2-devel,libGraphicsMagick-devel,libX11-devel,^
79libXext-devel,libXm-devel,make,nano,sox,unzip,wget,xfontsel,xinit,^
80xorg-x11-fonts-Type1,xorg-x11-fonts-dpi100,libbz2-devel,libproj-devel
81
82If you have setup-x86_64.exe (64 bit), run this command to
83download and install the needed Cygwin components:
84
85setup-x86_64.exe --quiet-mode --packages autoconf,automake,binutils,^
86db,font-util,gcc-core,git,GraphicsMagick,gv,libcurl-devel,libdb-devel,^
87libgeotiff,libgeotiff-devel,libjasper-devel,libjbig-devel,^
88liblcms2-devel,libpcre-devel,libshp-devel,libtiff-devel,libwebp-devel,^
89libwmf-devel,libxml2-devel,libGraphicsMagick-devel,libX11-devel,^
90libXext-devel,libXm-devel,make,nano,sox,unzip,wget,xfontsel,xinit,^
91xorg-x11-fonts-Type1,xorg-x11-fonts-dpi100,libbz2-devel,libproj-devel
92
93[ ] Step 1c) Choose a Download Site and then click Next.
94
95[ ] Step 1d) The Select Packages screen will display.  You don't have
96to actually select any, the right packages have been selected for you.
97But, if you wish, you can review the selection and make changes if you
98know what you are doing.  Click Next and the Resolving Dependencies
99screen will display.
100
101[ ] Step 1e)  Click Next and the packages will get downloaded and
102installed.  Repeat the above if you have network difficulties, until
103the install succeeds completely.
104
105
106In addition to the base packages, the following packages required to
107compile and run Xastir, along with their dependencies, will be installed.
108
109[ ] autoconf
110[ ] automake
111[ ] binutils
112[ ] db
113[ ] font-util
114[ ] gcc-core
115[ ] git
116[ ] GraphicsMagick
117[ ] gv
118[ ] gzip
119[ ] libbz2-devel
120[ ] libcurl-devel
121[ ] libdb-devel
122[ ] libgeotiff
123[ ] libgeotiff-devel
124[ ] libjasper-devel
125[ ] libjbig-devel
126[ ] liblcms2-devel
127[ ] libpcre-devel
128[ ] libproj-devel
129[ ] libshp-devel
130[ ] libtiff-devel
131[ ] libwebp-devel
132[ ] libwmf-devel
133[ ] libxml2-devel
134[ ] libGraphicsMagick-devel
135[ ] libX11-devel
136[ ] libXext-devel
137[ ] libXm-devel
138[ ] make
139[ ] nano (a windows-style text editor, optional)
140[ ] patch
141[ ] sox
142[ ] unzip
143[ ] wget (Optional: Can use libcurl instead)
144[ ] xfontsel
145[ ] xinit
146[ ] xorg-x11-fonts-Type1
147[ ] xorg-x11-fonts-dpi100
148
149
150[ ] Step 1f) You may receive a Postinstall script errors screen.
151It is not necessarily an issue, but you are advised to check the
152contents of /cygwin/var/log/setup.log.full or
153/cygwin64/var/log/setup.log.full.  Click Next to proceed.
154
155[ ] Step 1g)  At the end of the install it'll ask you if you wish to
156create desktop icons and menu entries.  Definitely select these!  It
157doesn't mean that Cygwin will start automatically each time you
158reboot your computer or login (it doesn't start automatically).  It
159_does_ mean that you'll have an icon to click on manually to get
160things going.
161
162This will create a Black/Green Cygwin icon on the desktop and a menu
163entry so that you can start Cygwin through the menu system as well.
164
165[ ] Step 1h) Click "Finish".  Cygwin is now installed.  One more
166pop-up informs you Cygwin has been installed.  Sometimes this last
167dialog gets hidden behind other windows, and it does seem to need OK
168clicked to complete the installation.  Click the OK button on that
169last dialog to _really_ complete the installation.  The Command
170Prompt in the window will not return.  When it prints "Ending Cygwin
171install" it is done.  You can press enter and the prompt will
172reappear.
173
174The Black/Green Cygwin icon will start up a BASH window, without
175starting up Xwindows.  Think of it as being similar to a DOS window,
176but with a lot more power.  It understands Unix commands though, not
177DOS commands.
178
179[ ] Note:  I've had the Cygwin network install fail before during
180the downloading stage without informing me in any recognizable
181manner.  You might want to re-do step 1 to make sure nothing
182further gets downloaded/installed.  Once you get to that point, Step
1831 is complete.
184
185[ ] Step 2)  Start the X Server:
186
187Click on the Windows menu icon or press the Windows button.  Look for
188the Cygwin-X program group and click on the XWin Server.  It will create
189a green "X" icon in the system tray.
190
191Right-click on green "X" icon in the system tray.  Select Systems Tools,
192and then Cygwin Terminal.
193
194[ ] Step 3)  Test Cygwin and create startup shortcuts:
195
196You should get a shell window that looks very much like a DOS window.
197It's a BASH shell window and understands Unix commands instead of DOS
198commands.
199
200Once you've gotten to this stage, you now have Cygwin and Xwindows
201installed and operational.  Next we go after Xastir itself.
202
203[ ] Step 4)  Download Xastir sources.  Use the Cygwin Terminal window
204that you just started.  Type the three lines below into the shell exactly
205as shown.
206
207  mkdir git
208  cd git
209  git clone http://github.com/Xastir/Xastir
210
211The end result when it succeeds will be a new directory "~\git\Xastir\"
212which contains all of the Xastir source code.  You can type "ls Xastir"
213(that's lower-case LS) to see the file listing.
214
215Side Note:  Here's the coolest thing about Git:  Once you've done
216this initial source-code download, you'll never have to do the whole
217Xastir download again.  You'll just go into the "git/xastir"
218directory and type "git pull", which will snag just the _changes_
219to the files since you last updated, and is very fast.  Compile and
220install at that point and you'll be running the latest developer's
221version in just a few minutes!  It's very easy to keep up with the
222developers this way.
223
224[ ] Step 5)  Configure/compile/install Xastir.  Type these commands
225into the BASH shell, waiting until each one completes before typing
226the next command:
227
228    cd ~/git/Xastir
229    ./bootstrap.sh
230    mkdir -p build
231    cd build
232    ../configure
233    make
234    make install-strip
235
236NOTE:  You'll probably want to run the configure step from an xterm
237window with the X11 server running of course.  If you do this from a
238non-X11 window then the configure test for "gv" will fail, as "gv"
239requires an X11 server even when asking it for it's version number.
240Without "gv" support you won't be able to print from Xastir.
241
242Once you get through the above commands, Xastir is compiled and
243installed on your system, with minimal map support.  Later sections
244of this document detail adding additional map libraries in order to
245give you access to the full mapping capability of Xastir.
246
247---------------------------------------------------------------------
248
249[ ] Step 6)  Actually run the darn thing:
250
251Let's start from scratch to make sure it all works.  Close any
252Cygwin/BASH windows you may have.
253
254Click on the shortcut you created to start Xwindows.
255
256From the resulting BASH window, type "xastir &".  Xastir should
257start up shortly.
258
259As built, using this documentation, the following map types are
260supported.
261
262Built-in map types:
263      gnis   USGS GNIS Datapoints
264       pop   USGS GNIS Datapoints w/population
265       map   APRSdos Maps
266       map   WinAPRS/MacAPRS/X-APRS Maps
267
268Support for these additional map types has been compiled in:
269       geo   Image Map (ImageMagick/GraphicsMagick library, many
270                        formats allowed)
271       geo   URL (Internet maps via libcurl library)
272       geo   URL (OpenStreetMaps via libcurl library
273                  Copyright OpenStreetMap and contributors, CC-BY-SA)
274       shp   ESRI Shapefile Maps (Shapelib library)
275       tif   USGS DRG Geotiff Topographic Maps (libgeotiff/libproj)
276       xpm   X Pixmap Maps (XPM library)
277
278The README.MAPS file has instructions for where to get maps and where
279to put them under the Xastir hierarchy.
280
281If you have any WinAPRS, DosAPRS, or PocketAPRS maps, now is a good
282time to place them in the /cygwin/usr/local/share/xastir/maps folder
283(or a subdirectory of it).  You can also use "*.geo" files and the
284associated image files with Xastir.  You may place them in this
285directory (or a subdirectory of it) as well.
286
287FILESYSTEM PATHS (WINDOWS VS CYGWIN):
288
289From Windows, just prefix all paths with "/cygwin" or "/cygwin64" as
290appropriate.  For instance, maps go into /cgwin/usr/local/share/xastir/maps
291instead of /usr/local/share/xastir/maps.  Xastir will continue to see
292them as "/usr/local/share/xastir/maps" though from inside Cygwin.  It kind
293of looks like a miniature Unix box from inside Cygwin.
294
295LANGUAGE OPTIONS:
296
297To set a new language or change the language current choice, use
298this command line instead from inside an Xterm:
299
300     xastir -l <language>
301
302Current choices are:
303
304    Dutch English French German Italian Portuguese Spanish
305    ElmerFudd MuppetsChef OldeEnglish PigLatin PirateEnglish
306
307This option will be stored in the users config file for the next
308time Xastir is run. On new installs Xastir will default to English
309until you use this command line option once.
310
311CYGWIN vs LINUX/UNIX:
312
313Another difference with Cygwin as opposed to Unix-like operating
314systems:  You can't do the make install portion if Xastir is up and
315running.  You have to kill Xastir first before you do "make install"
316or "make install-strip".  Otherwise the newly compiled Xastir won't
317replace the old one.
318
319Another interesting "feature" of Cygwin/Xwindows is that some of the
320modifier keys like ScrollLock/CapsLock/NumLock must be pressed while
321that X-window is the active foreground window.  If not, the event
322can be missed, and Xwindows can get out of sync with the actual
323state of the key.  This doesn't appear to be an Xastir-specific
324problem, but a Cygwin/Xwindow problem.  With just a BASH shell under
325Cygwin (not involving Xwindows), the problem doesn't appear to
326happen.  Just inside Xwindows on Cygwin.
327
328When specifying serial ports to use with Xastir,
329
330    "COM1" is called "/dev/ttyS0" in Cygwin (and Linux)
331    "COM2" is called "/dev/ttyS1" in Cygwin (and Linux)
332
333Note the capital 'S'.
334
335OPTIONAL
336
337Please see the INSTALL file and the Help menu in Xastir itself
338for additional information not mentioned in this document.
339
340Additional info can be found on the cygwin web-site:
341
342    http://www.cygwin.com
343
344or the Cygwin/XFree86 web-site:
345
346    http://cygwin.com/xfree/
347
348
349Keeping up-to-date:
350
351Once a week or once a month, run the Cygwin network installer
352program (setup-x86.exe or setup-x86_64.exe).  After it finishes,
353open a Cygwin terminal window and type these commands to update the
354Xastir source code:
355
356    cd ~/git/xastir
357    git pull
358
359Every once in a while Windows will refuse to allow you to
360delete/rename one of the files.  The only way I've found to get
361around this problem is to reboot.  I sometimes see this when trying
362to do a "git pull", and Windows won't allow one or more files to get
363updated.
364
365You can now repeat step 5 to update Xastir.
366
367-------------------------------------------
368OPTIONAL:  ADDING ADDITIONAL MAP LIBRARIES:
369-------------------------------------------
370
371These additional Xastir libraries have been tested on Cygwin:
372
373    ImageMagick (no need to use if using GraphicsMagick)
374    Festival
375
376Anyone testing additional libraries is encouraged to share their
377findings on the Xastir mailing lists (you must be subscribed in
378order to post messages there).  The libraries which have _not_ been
379made to work yet on Cygwin are:
380
381    AX25
382    GPSMan/gpsmanshp
383
384The AX25 libraries will probably never work, as they are for Linux
385only.  GPSMan/gpsmanshp may work on Cygwin at some point if enough
386work is done to figure out and document the process.
387
388
389OPTIONAL:  Install Festival support:
390------------------------------------
391
392Note: The most recent version of Festival is 2.4.  According to the
393README for this version, "Do NOT use Windows with Cygwin".  With that
394warning up front, here are instructions that were previously used to
395make a legacy version of Festival work with Xastir.  They were not
396revalidated during the November 2017 update to this document.
397
398Allows using a synthesized voice from within Xastir for alerts,
399reading messages to you, and other cool things.  Tom Russo did the
400initial work on this, Henk de Groot optimized it:
401
4021) Start BASH shell in Cygwin
403
4042) Make ~/festival download directory and
405    /usr/local/festival installation directory
406
4073) Download festival components from festvox.org into ~/festival, in
408   the Windows environment the corresponding path is:
409
410     C:\Cygwin\home\%USERNAME%\festival
411
412    get the following files:
413
414     speech_tools-1.2.95-beta.tar.gz
415     festival-1.95-beta.tar.gz
416     festlex-CMU.tar.gz
417     festlex-POSLEX.tar.gz
418     festvox-kallpc16k.tar.gz
419
4204) Build festival and company:
421
422    cd /usr/local/festival
423    tar xzf ~/festival/speech_tools-1.2.95-beta.tar.gz
424    tar xzf ~/festival/festival-1.95-beta.tar.gz
425    tar xzf ~/festival/festlex_CMU.tar.gz
426    tar xzf ~/festival/festlex_POSLEX.tar.gz
427    tar xzf ~/festival/festvox_kallpc16k.tar.gz
428
429    cd speech_tools
430    ./configure && make
431    cd ../festival
432    ./configure && make
433
434   These packages are build and used where they are compiled.
435
4365) Test festival:
437
438    cd /usr/local/festival/festival/examples
439    sh saytime
440
441   Festival should say the time if everything went fine
442
4436) Add /festival/festival/bin to PATH in .profile and .bashrc. For
444   me both files look like this:
445
446    .profile and .bashrc:
447    -------------------
448    export PATH=$PATH:/lib:/usr/lib:/usr/X11R6/lib:/usr/local/lib:/usr/local/bin:/usr/local/festival/festival/bin:~/bin:.
449
450    -------------------
451
4527) Configure and build xastir.  Configure should report that
453   festival is found.
454
4558) Start the festival server:
456
457    festival --server &
458
459   To do this automatically I added the following lines to my
460   .bash_profile:
461
462    -------------------
463    if  [ `ps -ef | grep festival | wc -l` -eq 0 ]
464    then
465      festival --server &
466      sleep 1
467    fi
468    -------------------
469
4709) Run xastir, do File->Configure->Speech, add things to say, and
471   listen.
472
473
474
475OPTIONAL:  How to make Sound Alerts work under Cygwin:
476------------------------------------------------------
477
478There is currently (November 2017) a problem using sound alerts
479under Cygwin.  It is recommended that sound alerts are turned off
480within Cygwin or you may experience lockups.
481
482You'll need to add the .wav files to Xastir.
483
484git clone http://github.com/Xastir/Xastir-sounds
485
486cd Xastir-sounds
487cp -r sounds/* /usr/local/share/xastir/sounds/
488
489
490November 2017 documentation updates by K2DLS.  There may be
491out-of-date items that remain in this document.  Please report
492issues via the Xastir mailing list.
493
494APRS(tm) is a Trademark of Bob Bruninga
495
496Copyright (C) 2000-2019 The Xastir Group
497

README.GIT

1Git Instructions:
2-----------------
3
4    For those who think git might be a bit too complicated to deal with,
5    here are (I think) the minimal commands. See the "SUDO" section in
6    README.sudo for ideas to make updating Xastir even simpler.
7
8
9USERS:
10------
11
12    Initial Copy (Git Clone):
13    -------------------------
14
15    0) Make sure git is installed on your system.
16
17    1) Run
18        git config --global user.name "Your Name" user.email "Your@email.address"
19
20        The above is not strictly necessary, but if you ever try to make changes
21        to Xastir and get them integrated with the project it is important.
22
23        NOTE: If you already have a different git global config, you can create
24        a local config for a particular repo by going into that repo and doing:
25        git config --local user.name "Your Name" user.email "Your@email.address"
26
27        Check the config by:
28            git config --local -l
29            git config --global -l
30            git config -l   # Doesn't differentiate between global and local though!
31
32    2) Go to <http://github.com/Xastir/Xastir> to access the project page.
33        There you will find the URL of the git repository, just to the
34        right of a button that says "HTTPS". Copy this URL to your clipboard.
35
36        (At the time of this writing, the URL was
37         <https://github.com/Xastir/Xastir.git>)
38
39    3) Open a shell, navigate to a directory where you want to store
40        the Xastir source code, and enter this command:
41
42        git  clone https://github.com/Xastir/Xastir.git
43
44        This will create a clone of the Xastir git repository in an
45        "Xastir" subdirectory of the current directory.
46
47    All done!  You now have the latest development sources on your computer.
48    Not only that, you have a complete copy of the entire project history
49    and access to all prior releases.
50
51    4) Please set your default git commit message template for the project to
52       the one included in the Xastir source tree:
53
54       cd Xastir
55       cp git_commit_message_template ~
56       git config --global commit.template ~/git_commit_message_template
57
58       This will assure that when you make commits, your editor will start
59       with a template that helps guide you through the process of writing
60       commit messages that conform to the guidelines below in the section
61       titled "Important: Git Commit Message Format".  This template is quite
62       generic and conforms to the guidelines of many other open source
63       projects, so it is reasonable to make it a global git option.
64
65    Updating Your Copy:
66    -------------------
67
68    cd Xastir
69    git pull           # Update your local repo (May be dangerous for developers)
70    ./bootstrap.sh
71    mkdir -p build     # Build in a separate directory
72    cd build
73    ../configure
74    (make clean;make -j3 2>&1) | tee make.log
75    sudo make install  # "make install-strip" can be used after the first
76                       # time: It removes debugging info from executable
77    sudo chmod 4555 /usr/local/bin/xastir  # Only needed if using kernel AX.25
78    xastir &   # Start it up!
79
80    Note that you'll need autoconf 2.53 or newer and automake 1.6.3 or newer
81    in order to run the "./bootstrap.sh" script.
82
83    -or-
84
85    Bypass all of the commands above and just type:
86        cd Xastir
87        ./update-xastir
88
89
90   PLEASE NOTE: Bootstrap.sh is used by both methods above, even
91   "update-xastir", which is simply a script that performs all the
92   steps listed explicitly earlier.
93
94   The bootstrap.sh script is what creates the configure script.
95   Running bootstrap.sh requires having autoconf and automake
96   installed, and it will fail if these are not installed.  If
97   bootstrap.sh fails, configure won't exist.  If bootstrap.sh fails,
98   stop, fix the problem and try again.  There is no point continuing
99   if bootstrap.sh gives you error messages about programs not being
100   found (aclocal, autoconf, automake).
101
102   This is a common problem reported to the Xastir team, and its solution
103   is always the same:  install all prerequisite tools before trying to
104   build Xastir.
105
106DEVELOPERS:
107-----------
108
109    Initial Checkout:
110    -----------------
111
112    HTTPS Method:
113      git clone https://github.com/Xastir/Xastir
114
115    -or-
116
117    SSH Method. Add keys to GitHub and then:
118
119      git clone git@github.com:Xastir/Xastir
120
121    Note that using the SSH method means that you won't have to answer the
122    popups for user/password each time you do anything with the remote repo,
123    although you will have to enter a passphrase if you added a passphrase to
124    your SSH key. The SSH method is highly recommended for active developers!
125
126
127    Normal Development Flow:
128    ------------------------
129
130    A pull before committing can be dangerous, if there are substantial
131    conflicts between your work and others (not very likely with Xastir, but
132    definitely likely in bigger projects). It is much better to do a fetch
133    (which pulls down changes from the remote but DOESN'T merge them into your
134    tracking branch), then look at what changed upstream, and then either a
135    merge, rebase, stash/pop, or something else depending on the level of
136    conflict you see. See README.GIT.
137
138    Doing a pull before starting your own work is reasonable, but if someone
139    pushes while you're working (again, not very likely with Xastir), you can
140    still wind up with really ugly history, with weird merge commits and
141    undesired branching.
142
143    On the other hand, if you replace "git pull" with "git pull --rebase" in
144    that recipe, with the caveat that sometimes you might have to be more
145    careful and that you need to understand what you're doing, a lot of the
146    danger of the simple git pull can be avoided.
147
148    We will often be working on a branch for development, then merging that
149    branch with the trunk when that feature or bug-fix is ready for prime-time.
150
151    Commit your work to your LOCAL repo:
152
153       - First add all desired changes to the staging area:
154           git add <file1>  <file2> <file3> ...
155
156       - Then commit your staged changes to your local repo
157
158          git commit
159
160    Push your local repo changes up to GitHub when you are ready to
161    publish them:
162
163       git push
164
165
166    Important: Git Commit Message Format
167    ------------------------------------
168
169    Git commit messages need to be in a certain format to make the best use
170    of the "git log" commands. In particular the first line needs to be 50
171    chars or less, then a BLANK LINE, then a detailed commit message. See
172    this link for more info:
173
174    http://chris.beams.io/posts/git-commit/
175
176
177    Checking Out A Branch:
178    ----------------------
179
180    All branches associated with the Xastir project are contained in the clone
181    you made earlier. You can switch your current working directory to
182    one of those branches easily:
183
184    cd Xastir
185    git fetch (this updates your local repo copy from github, but doesn't
186               merge changes into your working tree)
187    git checkout <branch name>    (this switches all the files in your working
188                                   tree to match those in the branch)
189    git merge                     (This makes sure that all the changes that
190                                   may have happened upstream on that branch
191                                   get into your copy)
192
193    You do not have to do this in a new directory --- so long as
194    you haven't changed any files in the source tree, git checkout
195    automatically swaps out all files it knows about with versions from the
196    branch.
197
198    If you really want to keep more than one branch's code around to work on,
199    you can do that if you have git version 2.5 or later with the following
200    commands:
201
202    cd Xastir
203    git worktree add <path> <branchname>
204
205    This will create a new directory tree called <path> with the named
206    branch checked out into it.
207
208    In early 2018, there is only one active branch, the master branch,
209    and we will be performing releases by creating release branches.
210
211    There are many more git commands and options. Many of them are more of
212    use to the developers. Some of those are listed below. The above should
213    be enough for most people to keep their copies in sync with the latest git
214    development sources.
215
216
217    If Using Multiple GitHub Accounts:
218    ----------------------------------
219
220    You may have trouble getting your commits attributed to the correct GitHub
221    login. GitHub uses the username/email in your git config settings for
222    attribution. If it is wrong, you may have to do some of the below in order
223    to set a LOCAL username and email for the one repository.
224
225    The user.name and user.email are pulled from the global git config, but a
226    local git config inside each repo will override those settings.
227
228    Go to root of checked-out repo and set local user.name and user.email for
229    this repo:
230
231       git config user.name <github username>
232       git config user.email <email address>
233       git config -l           # Shows both local and global settings, hard to tell which is which
234       git config --global     # Shows global settings
235       git config --local -l   # Shows local repo configs, so should show new settings
236
237    Another method (but more error-prone) of editing local/global git config is:
238
239       git config edit             # Edit local config
240       git config --global edit    # Edit global config
241
242    If new commits still aren't using the right email, make sure you have not
243    set GIT_COMMITTER_EMAIL or GIT_AUTHOR_EMAIL environment variables.
244
245
246    More Info:
247    ----------
248
249    Make sure you know how git works. Read https://git-scm.com/book/en/v2
250
251    If you are very familiar with CVS, get used to working differently, because
252    git is different.
253
254    Read and understand http://chris.beams.io/posts/git-commit/
255
256    Read http://justinhileman.info/article/changing-history/
257
258    Read http://think-like-a-git.net/
259
260    Read "Visual Git Cheat Sheet" at http://ndpsoftware.com/git-cheatsheet.html
261
262    Branching and merging in git is very simple, and is documented very well
263    by all those links. We will not repeat it here.
264
265    If you use SSH, set up your SSH keys on GitHub and do the "git clone" using
266    the SSH path. This will save you having to put in your password each time
267    you use the remote repository, although if you added a passphrase to your
268    SSH key you'll have to enter that each time.
269
270    Useful Git Commands:
271    --------------------
272
273    Set up global user/email
274        git config --global user.name "Your Name"
275        git config --global user.email "user@domain.com"
276
277    Set up user/email for a local repository
278        cd /path/repository
279        git config user.name "Your Name"
280        git config user.email "user@domain.com"
281
282    Configure Git's editor:
283        git config --global core.editor /path/to/editor
284
285    Colorizing Git output (set once and forget):
286        git config --global color.ui auto
287
288    Clone a repo:
289        git clone http://github.com/Xastir/Xastir
290        git clone https://github.com/Xastir/Xastir
291        git clone git@github.com:Xastir/Xastir
292
293    Status of local repo:
294        git status
295
296    Diff for a file:
297        git diff <filename>
298
299    See all branches, local and remote:
300        git branch -a
301
302    Visual Git viewer:
303        gitk (tcl/tk and generic X11 viewer, comes with git)
304        or
305        gitg (gnome git viewer)
306
307    Add files to the staging area:
308        git add <file1> <file2>
309
310    Commit changes to LOCAL repo:
311        git commit      # If have files in staging area already
312        git commit <file1> <file2>  # Ignores staging area
313
314    Push local changes to remote repository:
315        git push
316
317    Update local repo from remote repo
318        git fetch
319
320    Update local repo and merge remote/local changes in local repo (May be
321    dangerous for developers with modified code in their working tree):
322        git pull
323
324    Rebase local changes against latest master branch
325        git fetch
326        git rebase master
327
328
329------------------------------------------------------------------------
330Copyright (C) 2000-2019 The Xastir Group
331
332
333

README.Getting-Started

1
2
3
4Hello new user, and welcome to Xastir!
5
6
7This document will take you through the steps necessary to get
8Xastir up and running in one of the following configurations:
9
10
111) Minimal install, which will get you up and running quickly.  It's
12   recommended that you try this configuration first then add to it.
13
142) Typical install including maps, weather alerts, geo-coding files,
15   etc. so that full regular operation is achieved.
16
173) Maximum install with all configure options enabled and most of
18   the useful maps loaded/enabled.  All the bells and whistles.
19
20
21Note that you can start with either of the first two options and add
22only the options you wish in order to come up with your own custom
23configuration of Xastir.
24
25These instructions are written for Linux users.  Windows users
26should refer to the README.CYGWIN document instead.
27
28Users of other operating systems should refer to the README document
29first, then the INSTALL document and the below instructions for
30further notes, and finally the Installation Notes section of the
31Xastir wiki at http://xastir.org/.  Linux users may also benefit from
32reading the Installation Notes section of the wiki, because each
33distro of Linux has its own quirks, and many of those quirks are
34documented on the wiki.
35
36One question you might ask is whether you can just find a binary on
37the 'net somewhere and install it instead of compiling Xastir from
38sources.  Yes, this is possible, but not what most Xastir users
39ultimately want.  Xastir changes often enough (bug fixes and of course
40adding new features) that you're really limiting yourself by using
41pre-compiled binaries.  Binaries are typically not updated all that
42often, if at all, so you'll forever be behind the curve.  Most
43packaged versions of Xastir in package management systems tend to be a
44couple of years out of date, or even worse.
45
46Another reason to compile from sources is to customize it to use all
47of the features you have available on your system.  As you add more
48libraries that Xastir can use, you can do a quick
49configure/compile/install and Xastir will be able to take advantage
50of them.
51
52For those that really must have the latest-latest:  Download the
53Xastir sources using Git instead, then issue the command "git
54pull" periodically in order to snag the latest changes.  If
55anything comes down the pipe, just configure/make/install and then
56use the latest version.  This avoids large file downloads (after the
57initial download) as it just grabs _changes_ to the sources off the
58'net each time you issue the "git pull" command.  This is the
59power-user's method of keeping Xastir up-to-date.  See README.GIT
60for details.
61
62After the three configuration sections there's a section on
63operating, which simply talks you through the initial configuration
64settings and how things work.  After that you can refer to the Help
65menu option in Xastir itself, plus the INSTALL and README.* text
66files for additional information.  Please note that the non-English
67help files lag severely behind the English help file.
68
69First of all, NEVER RUN XASTIR AS THE ROOT USER!  You're risking the
70security of your system by attempting it.  Create another regular
71user on your system and use that user for all of your normal
72activity.  This goes for any other normal activity on the system as
73well.  Only use the "root" account for maintenance activities, not
74for regular user activities.  You'll thank me later!
75
76Before we begin, consider subscribing to the Xastir mailing list.
77That's where everyone is kept up-to-date on the latest features,
78plus lots of questions are asked/answered there on a weekly or
79sometimes daily basis.  It's a great way to learn and to stay
80connected with the other Xastir users.  See the mailing links on the
81left of the Xastir home page:  http://xastir.org
82You must be subscribed in order to post messages there.
83
84So...  Let's get started!
85
86
87--------------------------------------------------------------------
88--------------------------------------------------------------------
89
90
91Latest info:
92
93*) Xastir starts up with a default world map the first time you run
94it plus pops up a dialog where you can enter your callsign.  Enter
95a callsign, then close/restart Xastir or save the configuration via
96"File->Configure->Save Config Now!".  Either of these methods saves
97the callsign to disk.
98
99*) Xastir includes "Shapefile" map capability by default.  Run the
100script:
101
102    "/usr/local/share/xastir/scripts/get-NWSdata"
103
104as root to download/install NOAA Shapefile maps using the "wget"
105utility.  You'll of course need wget installed in order to fetch the
106files using this method.  Installing the NWS files enables weather
107alert support in Xastir.  Verify that "Map->Enable Weather Alerts" is
108selected and that "Map->Disable All Maps" is _not_ selected, else
109you won't see weather alerts on your screen.
110
111
112--------------------------------------------------------------------
113--------------------------------------------------------------------
114
115
116Sources of help you may find useful:
117
118*) "FAQ" file
119
120*) "INSTALL" file:  Non-Windows instructions for installing Xastir
121   and optional map libraries may be found here.
122
123*) "README.md" file:  General info and some OS-specific notes.
124
125*) "CONTRIBUTING.md" file:  Info on how to contribute to the
126   Xastir project.
127
128*) "README.GIT" file:  Info on a more advanced way to keep up-to-date
129   on the latest Xastir sources.
130
131*) "README.Getting-Started" file:  The file you're reading.
132
133*) "README.MAPS" file:  Much of the info about maps and where to get
134   them may be found here.  Also see the Xastir Documentation
135   section, the Wiki pages, at <http://xastir.org>
136
137*) "README.CYGWIN" file:  For Windows/Cygwin users.
138
139*) "UPGRADE" file:  Useful info for updating some old versions of
140   Xastir.
141
142*) Xastir Web-based documentation, including a set of Wiki pages,
143   found at <http://xastir.org>
144
145*) Xastir man page, accessed by typing "man xastir" on a Unix or
146   Unix-like system.  This page is a bit out-of-date.
147
148*) "Help->Help Index" in the Xastir program itself.  Note that only
149   the English language variation of this is even approximately up-to-date.
150
151*) Mailing lists at <http://xastir.org>
152
153*) User forums at <http://xastir.org>
154
155
156--------------------------------------------------------------------
157--------------------------------------------------------------------
158
159
160Minimal Install:
161----------------
162
163First, let's describe it:  This will get Xastir up and running with
164a few built-in map types.  You'll be on the air or on the 'net
165quickly, then can build upon this working base to add more map
166libraries and other cool features later.
167
168
169Getting the package:
170--------------------
171
172*) Option 1: Download one of release tarballs from
173http://xastir.org.  There are links from that page or you can go to
174the github site (https://github.com/Xastir/Xastir) and click on "Releases"
175to see the entire set that is available.
176
177Once you have the file (which will generally be called
178"Xastir-Release-<number>.tar.gz," create a subdirectory for it to
179reside.  I usually do this:
180
181    cd                      # Go to my home directory
182    mkdir src               # Make a "src" subdirectory
183    cd src                  # Change to it
184    mkdir xastir            # Make an "xastir" subdirectory
185    cd xastir               # Change to it
186    cp /path/filename .     # Copy the downloaded file here
187    tar xzvf filename       # Un-archive the sources
188
189That last step will create a directory called
190Xastir-Release-<release number> underneath the first one, so
191your full path might be something like (starting at your home
192directory): ~/src/xastir/astir-Release-2.1.0
193
194The path just listed is where you'll go in order to run the
195configure and make commands listed below.
196
197    cd  ~/src/xastir/Xastir-Release-2.1.0
198
199from an xterm window should take you there.
200
201*) Option 2: An alternative is to use Git to snag the sources for you.
202Using this method you can periodically update to the latest released
203version, the latest "stable" version, or the latest development
204sources, and even switch back and forth between them at will.  See README.GIT
205for info about that option.  One of the advantages of Git is that you
206only pull down the changes since you last updated, instead of doing
207very large file downloads each time.  Another advantage is that you
208can keep up with the latest features on a daily basis if you wish,
209nearly effortlessly.
210
211
212Configure:
213----------
214In order to complete the configure/compile/install of Xastir, you'll
215need some of the development tools and headers installed.  Here's a
216list of a few items you'll need to have installed.  Look for them in
217the development tools sections on your Linux distribution:
218
219
220    autoconf
221    automake
222    bash
223    binutils
224    gcc
225    gcc development headers
226    cpp
227    glibc
228    glibc development headers?
229    freetype2
230    freetype2 development headers
231    openmotif (or Lesstiff or Motif)
232    openmotif development headers (or Lesstiff or Motif)
233    XFree86
234    XFree86 development headers
235    XFree86 fonts
236    XFree86 libraries
237    make (GNU flavor, not BSD flavor)
238    gzip
239    m4
240    grep
241
242
243Note:  Only install one of the Motif packages and the corresponding
244development package to go with it.  Recommendation:  OpenMotif.
245
246If you'd like to install additional packages at this point that may
247be needed later, install these as well:
248
249
250    patch
251    diffutils
252    perl
253    less
254    bzip2
255    curl
256    curl development headers
257    cvs
258    git
259    rcs
260    tar
261    liblcms
262    liblcms development headers
263    libtiff
264    less
265    pcre
266    pcre development headers
267    tcl
268    tcl development headers
269    tk
270    zip
271    unzip
272    wget
273    ax25-apps
274    ax25-doc
275    ax25-tools
276    libax25
277    festival
278    festival development headers
279    gawk
280    ghostscript-x11
281    ghostscript-fonts
282    ghostview
283    gv
284    ImageMagick
285    ImageMagick development headers
286
287
288Note that some packages may have dependencies on yet more packages.
289Hopefully your package installation tool will take care of those for
290you.  It's also common for at least one of these packages to forget
291to list some of it's dependencies (ImageMagick is known for that).
292In that case you may have to rely on the compiler to tell you what
293is missing, then go back and re-install a package or two.
294
295Now it is necessary to create the "configure" script that will be needed
296to configure Xastir for your system.  In versions prior to release 2.1.8,
297this script was included in the Xastir tarballs, but it is no longer included.
298
299   cd ~/src/xastir/Xastir-Release-2.1.0/
300   ./bootstrap.sh
301
302You will then create a "build" directory in which to run the
303compilation of Xastir, and run Xastir's configure script in that
304directory.  In the instructions below we describe making this build
305directory inside the Xastir source tree, so it would be
306
307    mkdir -p ~/src/xastir/Xastir-Release-2.1.0/build
308    cd  ~/src/xastir/Xastir-Release-2.1.0/build
309    ../configure
310
311If you do this, then the simplest path to Xastir's configure script is
312just "../configure".  You could create this build directory anywhere,
313though, so long as you remember to replace "../configure" with the
314full path to Xastir's script, e.g,
315~/src/xastir/Xastir-Release-2.1.0/configure.
316
317When you run the "../configure" step from the "build" directory, the
318script will attempt to figure out what facilities are available that
319Xastir can take advantage of.  Sometimes the script guesses wrong
320and you must disable an option and try again.  The correct way to do
321this is (Festival speech synthesizer is used as an example, not that
322I'm picking on Festival or anything):
323
324    mkdir build
325    cd build
326    ../configure --without-festival
327
328That will guarantee that configure will skip Festival entirely,
329which will set up the Makefiles to skip it, and the Xastir binary
330will be created without any support for it.
331
332Some operating systems place their packaged third-party libraries into places
333where configure won't find them by default.  In that case you may need to add
334additional options the help it out.  Please look at the Installation Notes
335section of the Xastir wiki, where it is likely you'll find special instructions
336for your operating system.
337
338Other configure options are:
339
340    --without-ax25
341    --without-festival
342    --without-gpsman
343    --without-shapelib
344    --without-imagemagick
345    --without-libproj
346    --without-geotiff
347    --without-pcre
348    --without-dbfawk
349    --without-map-cache
350    --with-errorpopups
351    --with-rtree
352
353
354That said, you probably won't have to use any of these!  Type
355"../configure" all by itself and the script should eventually give
356you a summary of the packages that it will try to compile support
357into Xastir for.  The only time you may want to add some of the
358above options is if the compile hangs up because of one of them.
359You can then add the option to configure, re-create the Makefiles to
360skip that feature, and get Xastir compiled without it.  Once you get
361the problem solved, you can reconfigure and recompile to add that
362feature back in.
363
364At this point, if some things don't appear in the summary that you'd
365like/expect to appear, as long as you get to the "Type 'make' to
366build Xastir" message, you're doing fine.  You can work on getting
367more things in there later.
368
369This is what you'd like to see at the end of the "../configure" run
370(minimum, there may be more "yes" answers):
371
372  AX25.......... : no
373  Festival...... : no
374  GPSMan........ : no
375  ImageMagick... : no
376  libproj....... : no
377  GeoTiff....... : no
378  ShapeLib...... : yes (internal)
379  pcre.......... : no
380  dbfawk........ : no
381  libgc (Debug). : no
382
383In other words, Xastir should build/compile with NO optional
384libraries installed!  This will still give you USGS GNIS maps,
385APRSdos maps, WinAPRS maps, and PocketAPRS maps, plus audio alerts
386if you have a suitable audio player installed on your system.
387You'll also be able to attach a TNC either in command-line or KISS
388mode and connect it to Xastir.  Mobile support will work with an
389attached serial GPS.  Attached weather stations should work fine
390too.  You won't get online maps or weather alerts with this
391configuration though.  Worry about that stuff later once you get the
392minimal configuration working.
393
394
395Make:
396-----
397Type "make".  That stage should complete with no errors.  You may
398have a warning or two show up, depending on your compiler version
399and your operating system.
400
401
402Make install:
403-------------
404For this stage you need to have root privileges.  "root" is the
405user on a Unix/Linux box that has the ultimate authority over
406everything.  Follow these steps:
407
408    su
409    make install
410    chmod 4755 /usr/local/bin/xastir (optional, see below)
411    exit
412
413The first step takes you to root user privileges.  You'll need to
414type in the root password when it asks for it.  The "make install"
415step installs all of the pieces of Xastir in the appropriate places
416on your system.
417
418The "chmod" step sets up the Xastir executable so that it can assume
419root privileges at the points where it needs to, usually when it
420needs to access serial ports or AX.25 kernel networking ports.  Note
421that if you don't need the above chmod command, don't use it.  It
422will prevent creation of "core" files in case Xastir crashes, which
423makes debugging to figure out the root cause much more difficult.
424There are also some security risks in doing "chmod 4755", as it
425makes Xastir run as the root user at times.  We've tried to minimize
426the risk by giving up root permissions when we don't absolutely
427require them, so the risks are smaller.
428
429At this point you have a minimal Xastir installed.  Jump down to the
430"Operating Xastir" step below.
431
432
433--------------------------------------------------------------------
434--------------------------------------------------------------------
435
436
437Typical Install:
438----------------
439
440First, let's describe it:  This will give you a working Xastir with
441local Shapefile maps, online street/topo/satellite-image maps,
442weather alerts, and audio alerts.  Optionally you can add
443synthesized speech to the mix.
444
445You'll need to run /usr/local/share/xastir/scripts/get-NWSdata as root
446after you do the install in order to get the NOAA data files you'll
447need for the weather alerts.  "get-NWSdata" requires "wget" in order
448to work.
449
450This is what you'd like to see at the end of the "./configure" run
451(minimum, there may be more "yes" answers):
452
453
454-------------------------------------------------------------------
455  MINIMUM OPTIONS:
456    ShapeLib (Vector maps) ................. : yes
457
458  RECOMMENDED OPTIONS:
459    GraphicsMagick/ImageMagick (Raster maps) : yes (GraphicsMagick)
460    pcre (Shapefile customization) ......... : yes
461    dbfawk (Shapefile customization) ....... : yes
462    rtree indexing (Shapefile speedups) .... : no
463    map caching (Raster map speedups) ...... : no
464    internet map retrieval ................. : yes (libcurl)
465
466  FOR THE ADVENTUROUS:
467    AX25 (Linux Kernel I/O Drivers) ........ : no
468    libproj (USGS Topos & Aerial Photos) ... : no
469    GeoTiff (USGS Topos & Aerial Photos) ... : no
470    Festival (Text-to-speech) .............. : no
471    GPSMan/gpsmanshp (GPS downloads) ....... : no
472-------------------------------------------------------------------
473
474
475Note:  You may see "ImageMagick" instead of "GraphicsMagick" and/or
476"wget" instead of "libcurl" for your installation of Xastir.  Those
477are alternative packages that give similar functionality.  You may
478also see "(internal)" at the end of the Shapelib line, which is fine
479also.
480
481
482TBD
483
484
485--------------------------------------------------------------------
486--------------------------------------------------------------------
487
488
489Maximum Install:
490----------------
491
492First, let's describe it:  This will give you a working Xastir with
493all of the non-debug "configure" options enabled, local maps, online
494street/topo/satellite-image maps, weather alerts, audio alerts,
495synthesized speech, Garmin RINO support, GPS download support,
496search for street address capability, FCC/RAC callsign lookups, and
497all of the supported map types.
498
499This is what you'd like to see at the end of the "./configure" run:
500
501
502-------------------------------------------------------------------
503  MINIMUM OPTIONS:
504    ShapeLib (Vector maps) ................. : yes
505
506  RECOMMENDED OPTIONS:
507    GraphicsMagick/ImageMagick (Raster maps) : yes (GraphicsMagick)
508    pcre (Shapefile customization) ......... : yes
509    dbfawk (Shapefile customization) ....... : yes
510    rtree indexing (Shapefile speedups) .... : yes
511    map caching (Raster map speedups) ...... : yes
512    internet map retrieval ................. : yes (libcurl)
513
514  FOR THE ADVENTUROUS:
515    AX25 (Linux Kernel I/O Drivers) ........ : yes
516    libproj (USGS Topos & Aerial Photos) ... : yes
517    GeoTiff (USGS Topos & Aerial Photos) ... : yes
518    Festival (Text-to-speech) .............. : yes
519    GPSMan/gpsmanshp (GPS downloads) ....... : yes
520-------------------------------------------------------------------
521
522
523Note:  You may see "ImageMagick" instead of "GraphicsMagick" and/or
524"wget" instead of "libcurl" for your installation of Xastir.  Those
525are alternative packages that give similar functionality.  You may
526also see "(internal)" at the end of the Shapelib line, which is fine
527also.
528
529
530TBD
531
532
533--------------------------------------------------------------------
534--------------------------------------------------------------------
535
536
537Operating Xastir:
538-----------------
539
540Again, NEVER RUN XASTIR AS THE ROOT USER!  You're risking the
541security of your system by attempting it.  Create another regular
542user on your system and use that user for all of your normal
543activity.  This goes for any other normal activity on the system as
544well.  Only use the "root" account for maintenance activities, not
545for regular user activities.  You'll thank me later!
546
547Assuming you want to start Xastir up in the English language, you
548can type (from an xterm window):
549
550    xastir
551
552which will start up the program without giving you back a
553command-prompt in your xterm window (until Xastir exits), or you can
554type (from an xterm window):
555
556     xastir &
557
558which will start Xastir in the background, giving you back your
559xterm for more commands.  The typical way to start it is with
560"xastir &".  Of course you can get fancier and attach it to your
561window manager's menus or create an icon on your desktop which
562starts it.  Those are operating system/window manager-specific, so
563we won't cover how to do that here.
564
565The first time you start Xastir it will show a default map of the
566world plus pop up the File->Configure->Station dialog.  Enter a
567callsign on that dialog and press the OK button.
568
569
570Changing the Language:
571
572If you want to start Xastir using some other language, you do that
573with command-line switches when you start Xastir.  Once you use one
574of these switches, that language option becomes "sticky", meaning
575you won't have to enter that command-line switch again unless you
576wish to change languages.
577
578There are some command-line switches that you can
579If you type "xastir -?", which is an invalid command-line option,
580you'll see this:
581
582  xastir: invalid option -- h
583
584  Xastir Command line Options
585
586  -c /path/dir       Xastir config dir
587  -f callsign        Track callsign
588  -i                 Install private Colormap
589  -geometry WxH+X+Y  Set Window Geometry
590  -l Dutch           Set the language to Dutch
591  -l English         Set the language to English
592  -l French          Set the language to French
593  -l German          Set the language to German
594  -l Italian         Set the language to Italian
595  -l Portuguese      Set the language to Portuguese
596  -l Spanish         Set the language to Spanish
597  -l ElmerFudd       Set the language to ElmerFudd
598  -l MuppetsChef     Set the language to MuppetsChef
599  -l OldeEnglish     Set the language to OldeEnglish
600  -l PigLatin        Set the language to PigLatin
601  -l PirateEnglish   Set the language to PirateEnglish
602  -m                 Deselect Maps
603  -p                 Disable popups
604  -t                 Internal SIGSEGV handler enabled
605  -v level           Set the debug level
606
607
608Ignore those for now unless you need to change the Language.
609
610OK, Xastir should show up on your screen at this point.  We're
611assuming that you're already running X-Windows graphical environment
612at this point.  If you're in command-line Linux/Unix only, Xastir
613won't run.
614
615If you've configured in ShapeLib capability, you'll need to run
616/usr/local/share/xastir/scripts/get-NWSdata as the root user in order
617to get the NOAA data files you'll need for the weather alerts.  The
618script requires "wget" in order to work.  Run this script periodically
619(once every six months perhaps?) to keep your weather alert maps
620up-to-date.  If you're not in the U.S. or one of it's possessions then
621you can safely ignore this download.
622
623
624Various ways to manipulate Xastir:
625
626
627Context-Dependent Operations:
628-----------------------------
629                Normal      Draw-CAD    Measure     Move
630                ------      --------    -------     ----
631Cursor          Arrow       Pencil      Crosshairs  Crosshairs
632LeftClick                                           SelectObject
633LeftDrag        ZoomToArea  ZoomToArea  MeasureArea MoveObject
634MiddleClick     ZoomOut     SetCADPoint ZoomOut     ZoomOut
635
636Alt-F, Alt-V, etc to bring up main menus via the keyboard.  Use
637arrow keys to navigate menus and/or single letters corresponding to
638the "hot" letter (underlined lettter) for each menu item.
639
640"ESC" to back out of the menu system.
641
642
643Global Operations:
644------------------
645LeftClick       Select Menu or GUI Item (when in menus or dialogs)
646LeftDblClick    FetchAlertText (when in View->Wx Alerts dialog)
647RightClick      OptionsMenu
648Home            Center the map on your home station
649PageUp          ZoomOut
650PageDown        ZoomIn
651ArrowUp         PanUp
652ArrowDown       PanDown
653ArrowLeft       PanLeft
654ArrowRight      PanRight
655"="             GridSize++
656"+"             GridSize++
657"Num+"          GridSize++
658"-"             GridSize--
659"Num-"          GridSize--
660"Space"         Activate current widget
661"Tab"           Rotate among widgets
662"Back-Tab"      Rotate among widgets backwards
663
664
665Other Possible External Stimuli:
666--------------------------------
667Send a SIGUSR1 to cause a snapshot to be taken.
668Send a SIGHUP to cause Xastir to save/quit/restart.
669Send a SIGINT, SIGQUIT, or SIGTERM to cause Xastir to quit.
670Connect to TCP port 2023 if Server Port is enabled to send/receive packets.
671Send to UDP port 2023 via the xastir_udp_client program to inject packets.
672
673
674Note that you can also tweak a define/recompile to reverse the
675left/right button functions.
676
677
678
679Configuring Xastir:
680-------------------
681*) Note that the menu's have a dashed line near the top.  If you
682click on that dashed line it acts like a cut-line for the menu and
683detaches that menu from the main menu.  You can then move that menu
684off to another area of your screen.  You might try that with the
685File->Configure menu at this time.
686
687*) Go to File->Configure->Station and set your callsign.  Set up
688other parameters/comment fields on this dialog that may need
689setting.
690
691*) Go to File->Configure->Defaults and set parameters there.
692
693You have the main parameters set now.  Next is to enable some
694interfaces so that you can see some packets come across.  Easiest
695might be the Internet interfaces, assuming the computer you're on
696has Internet access and is hooked up to it currently.
697
698*) Run "callpass" in another Xterm window in order to generate your
699Pass-code number.  Save that number as you'll need it for each
700Interface dialog where you might need to authenticate your callsign.
701Of course you can always run callpass again if you forget it!
702
703*) Go to Interface->Properties then click on "Add".  Click "Internet
704Server".  Another dialog will come up that allows you to enter the
705Host, and the Port.  Enter your Pass-code number here.  People often
706check the "Activate on Startup?" and the "Reconnect on NET failure?"
707options on this box.  You may also assign a comment to this
708interface which describes the interface better for you.  Click "OK"
709to create the interface.  If you checked "Activate on Startup?" then
710the interface will start as well and you'll be receiving packets.
711
712Browse "http://www.aprs2.net/" to find a reasonable set of servers
713to start with.  Another possibility is to use "rotate.aprs2.net"
714port 14580, which theoretically should rotate among the available
715second-tier servers.  See "http://www.aprs2.net" for more info.
716You'll need to put in a filter string, such as "r/35/-106/500" which
717shows you stations that are within 500km of 35dN/106dW (Thanks for
718that one Tom!).  For additional filter settings check out:
719
720    http://www.aprs-is.net/javaprssrvr/javaprsfilter.htm
721
722*) Start that interface from the Interface->Start/Stop dialog if
723it's not started already.  You'll see icons in the lower right
724toggling and see callsigns in the lower left status box if packets
725are coming in.
726
727One thing about configuration:  Most things don't get written to
728Xastir's config file until you choose either "File->Configure->Save
729Config Now!" or you exit Xastir.  Map Selections however are
730immediate.
731
732*) Creating/starting interfaces for other types of devices is
733similar.  If you're wanting to create AX.25 kernel networking ports
734you'll have to refer to the HAM HOWTO documents and perhaps the
735linux-hams mailing list for help.  For AGWPE connections refer to
736that AGWPE docs and mailing list.
737
738It's recommended that if you run a local TNC, you run it in KISS
739mode.  You can do that via the Serial KISS TNC interface, or via
740AX.25 Kernel Networking ports.
741
742Some of the more esoteric types of interfaces may require some
743questions on the Xastir list.  Don't be afraid to ask them as we've
744all been there before.
745
746
747A Note About Paths:
748-------------------
749New path methods were discussed early April, 2005, and are being
750implemented world-wide:
751
752    "WIDE2-2" for fixed stations, balloons, aeronautical-mobile
753    "WIDE1-1,WIDE2-1" for mobiles/portables
754
755With this system, "WIDE1-1" has replaced "RELAY".  Never use
756"WIDE1-1" in anything but the first path slot.  "RELAY", "WIDE",
757"TRACE", and "TRACEn-N" are deprecated and should not be used
758anymore.
759
760If you want to insert a single hop callsign later in the path use
761"WIDE2-1" instead, for example:  "WIDE1-1,WIDE2-1" will go exactly
762two hops and use _either_ home fill-in digi's or mountaintop digi's
763for the first hop, mountaintop digi's only for the second hop.
764
765Home fill-in digi's (only where absolutely needed) should be set up
766to respond to "WIDE1-1" instead of "RELAY".
767
768
769A Note About the Map Directory:
770-------------------------------
771The map directory (/usr/local/share/xastir/maps/) is free-form,
772meaning you can have links in there, subdirectories, etc.  Organize
773it in any way that makes sense to you.  From within the Map Chooser
774you can select a directory name, which will select every map
775underneath that directory, so keep that in mind while organizing
776your maps.
777
778
779Enabling Weather Alerts:
780------------------------
781You must have Shapelib compiled into Xastir.  Xastir now comes with
782Shapelib support built-in.  PRCE/dbfawk are optional.  Install NOAA
783shapefile maps as specified in README.MAPS.  These files must be
784installed into the /usr/local/share/xastir/Counties/ directory.  You
785may use this script to download/install them for you:
786
787    "/usr/local/share/xastir/scripts/get-NWSdata"
788
789which must be run as the root user, and requires "wget" to work.
790
791A neat trick:  You can copy some of these maps into the
792/usr/local/share/xastir/maps directory somewhere (a new subdirectory
793under there is always fine), then you can select some of these maps
794as regular Xastir maps as well.
795
796
797Enabling FCC/RAC Callsign Lookup:
798---------------------------------
799
800Run the /usr/local/share/xastir/scripts/get-fcc-rac.pl script as root,
801which will download and install the proper databases into the
802/usr/local/share/xastir/fcc/ directory.  At that point the callsign
803lookup features in the Station Info dialog and in the "Station->Find
804Station" menu option should be functional.
805
806
807Enabling Map Feature Lookup:
808----------------------------
809Install USGS GNIS files into the /usr/local/share/xastir/GNIS/
810directory.  Call out the proper file when invoking the "Map->Locate
811Map Feature" menu option.  Note that if you also link a subdirectory
812name under the maps directory back to the
813/usr/local/share/xastir/GNIS/ directory, you'll be able to use the
814GNIS files as maps under the Map Chooser as well.  See README.MAPS
815for how to do this.
816
817
818Enabling Street Address Lookup:
819-------------------------------
820Download the USA.geocode file and install it into the
821/usr/local/share/xastir/GNIS/ directory.  This will enable the
822"Map->Find Address" menu option to work.  Xastir will place a big
823"X" on the map at the street address it finds for you.  This file is
824sometimes available at http://www.dementia.org/geocoder/tgr2003/
825As an alternative you can download the individual state files that
826are located there.
827
828
829Enabling Audio Alarms:
830----------------------
831Download and install sample audio files from Xastir's GitHub
832download site:
833
834  git clone http://github.com/Xastir/xastir-sounds
835
836Copy the files to your Xastir sounds directory, for instance:
837  /usr/local/share/xastir/sounds/
838
839Install a command-line audio player.  Call out the path/name of that
840player in the File->Configure->Audio Alarms dialog.  Common ones are
841vplay and auplay, but there are many others.  Enable the types of
842alarms you desire in that same dialog.
843
844You should be able to test it manually from a shell by typing the
845command in something like this:  vplay filename
846
847Once you find a command that works, type it into Xastir's Audio
848Alarms dialog exactly the same except omit the filename.
849
850
851Enabling Synthesized Speech:
852----------------------------
853*) MacOSX
854    TBD
855
856*) Windows
857    TBD
858
859*) Linux/FreeBSD/Solaris
860Install the Festival Speech Synthesizer.  Configure/compile support
861for it into Xastir.  Start up the Festival server before starting
862Xastir.  Xastir should start up and connect to the server.  Use the
863options in File->Configure->Speech to decide which things you'd like
864Xastir to speak to you about.
865
866Note that the Proximity Alert option in the File->Configure->Speech
867dialog uses the distances set in the File->Configure->Audio Alarms
868dialog.
869
870
871Enabling GPS Waypoint/Track/Route Download Support:
872---------------------------------------------------
873Install GPSMan and gpsmanshp.  Configure/compile support for it in
874Xastir.  Start up GPSMan separately and configure it for your GPS
875and serial port.  You'll see download options for each type on the
876Interface menu.
877
878Note that Xastir requires a version of gpsman at least as recent as 6.1.  Older
879versions of gpsman may not work.
880
881
882Enabling Garmin RINO Support:
883-----------------------------
884Install GPSMan (and gpsmanshp if you wish normal GPS download
885support as well).  Configure/compile support for it in Xastir.
886Start up GPSMan separately and configure it for your GPS and serial
887port.  In the "File->Configure->Timing" dialog you'll see an option
888for "RINO -> Objects Interval".  That sets the interval at which
889Xastir will download waypoints from an attached RINO unit.  Any
890waypoints that begin with "APRS" will have the "APRS" chopped off,
891and the remaining name will be used to create APRS(tm) Objects.  Those
892objects will be plotted on the map and transmitted as well if
893transmit for objects/items is enabled.
894TBD
895
896
897Transmit Enable/Disable Options:
898--------------------------------
899Each interface has a separate transmit enable.  The Interface menu
900also has a few global transmit enables.  All of these must be
901enabled for a particular interface to transmit.  Also, for Internet
902servers, you typically need to authenticate with the server using
903your callsign/pass-code before you're allowed to inject packets into
904the Internet stream which may get gated out to RF.  If you just want
905to talk to other Internet users, you don't need a pass-code to
906authenticate to the servers.
907
908
909Igating Options:
910----------------
911There are igating options on each local TNC interface.  There are
912other global igating options on the File->Configure->Defaults
913dialog.  The global option sets restrictions on all igating.
914
915
916Where stuff is kept:
917--------------------
918
919Per-user configurations are kept in each user's ~/.xastir directory, by
920default.  In particular the ~/.xastir/config/xastir.cnf file is where most
921of the configs are kept.  This directory can be optionally specified using
922the -c /path/dir command line option.  Make sure you specify a directory,
923not a file!  Xastir will create the directory and several subdirectories if
924they do not exist when you start up.
925
926A few executables are installed in /usr/local/bin/.
927
928Scripts are installed in /usr/local/share/xastir/scripts.
929
930Maps are installed in /usr/local/share/xastir/maps/.  Lots of other
931directories are under /usr/local/share/xastir/.
932
933
934More?
935-----
936Anything else?  Let's hear about what's still confusing or needs to
937be expanded in this document.  Thanks!
938
939
940APRS(tm) is a Trademark of Bob Bruninga
941
942Copyright (C) 2000-2019 The Xastir Group
943
944

README.MAPS

1
2
3Recommended Configurations for:
4
5  U.S. Users:
6  -----------
7
8    Minimum:  Shapelib, pcre
9    --------
10      Allows use of all built-in map types plus 2003 (and later) Tigermap data,
11      shapefile weather alerts, and local ESRI Shapefile format
12      maps, including U.S. satellite/image/topo maps via Internet.
13
14    Medium:  Shapelib, pcre, lcms, ImageMagick, libcurl/wget,
15    -------
16
17      Allows use of all the above plus Internet maps and local image
18      maps.
19
20    Maximum:  Shapelib, pcre, lcms, ImageMagick, libcurl/wget,
21    --------  libtif, libproj, libgeotiff
22
23      Allows use of all the above plus USGS topo maps.
24
25  Rest of World:
26  --------------
27
28    Minimum:  lcms, ImageMagick, libcurl/wget
29    --------
30      Allows use of all built-in map types plus local and Internet
31      image maps, including Canadian topo maps via Internet.
32
33    Medium:  lcms, ImageMagick, libcurl/wget, Shapelib, pcre,
34    -------
35
36      Allows use of all the above plus ESRI Shapefile maps.
37
38    Maximum:  libproj/libtiff/libgeotiff
39    --------
40      Adds more map types.  Some of these may not be useful in your
41      part of the world.
42
43
44Map Type:           Libraries Required/Notes:
45---------------     -------------------------
46DosAPRS             Built-in.
47WinAPRS             Built-in.
48X-APRS              Built-in.
49MacAPRS             Built-in.
50PocketAPRS          Built-in.
51USGS GNIS           Built-in.  Can split into county-sized chunks
52                    using xastir/scripts/split_gnis.pl to speed
53                    things up.
54Address Lookup      Built-in.
55Weather Alerts      Shapelib
56pre-2003 Tigermaps  Shapelib
57post-2003 Tigermaps Shapelib, pcre
58ESRI Shapefiles     Shapelib
59Image Maps          ImageMagick.  Often need lcms library and others
60                    as well (whatever it takes to make ImageMagick
61                    happy).  Can also use the XPM library for some
62                    image types without installing ImageMagick.
63Internet Maps       ImageMagick plus wget or libcurl.  Often need
64                    lcms library and others as well (whatever it
65                    takes to make ImageMagick happy). WMS Maps are
66                    in this category as well.
67UI-View Maps        Convert from .INF to .GEO format using
68                    xastir/scripts/inf2geo.pl
69OziExplorer Maps    Convert some maps to .GEO format using
70                    xastir/scripts/ozi2geo.pl
71USGS DRG Topo       libtiff, libtiff-devel, libproj, libgeotiff
72APRS Overlays       Convert to Shapefile maps with scripts/pos2shp.pl
73
74
75The default map, "worldhi.map", is used with permission of its creator, Keith Sproul, WU2Z.
76
77
78How to Use APRS Overlay Maps (*.POS files) within Xastir:
79---------------------------------------------------------
80    Use the "xastir/scripts/pos2shp.pl" script to convert the
81    overlay files to ESRI Shapefile maps:
82
83        # ./pos2shp.pl test.pos testmap
84        # cp testmap* /usr/local/share/xastir/maps/.
85
86    Xastir:  Map->Configure->Index: Add New Maps
87             Map Chooser:  Select the "testmap" map
88
89
90Using Online Maps:
91------------------
92      There are a few *.geo files that get installed into Xastir's maps/
93      directory upon install. These invoke online map sources of various types:
94
95   OpenStreetMap
96   -------------
97
98      Select the appropriate files from the Online/ directory in Map Chooser
99
100   WMS Map Servers
101   ---------------
102
103      Xastir has support for WMS map servers built-in. To use this you'll need
104      to create a *.geo file in your map directory (usually
105      "/usr/local/share/xastir/maps/Online/", "/usr/share/xastir/maps/Online/"
106      or any directory below those) for each LAYER you wish to use, perform a
107      re-index of your maps, then select them in the Map Chooser.
108
109      Procedure: Hunt down a WMS map server that you wish to use, then find
110      its "GetCapabilities" link. Here's an example:
111
112  http://geogratis.gc.ca/maps/CBMT?service=wms&version=1.1.1&request=GetCapabilities
113
114      Look at it directly in your browser or use Xastir's "wms.pl" script to
115      see the structure and keywords of the XML. Note that if using "wms.pl"
116      you must add backslashes prior to each '&' character in the URL.
117
118  wms.pl "http://geogratis.gc.ca/maps/CBMT?service=wms\&version=1.1.1\&request=GetCapabilities"
119
120      "wms.pl" will show the format of the XML file plus a section at the end
121      which looks like:
122
123---------------
124  POSSIBLE .GEO FILE CONTENTS:
125
126  WMSSERVER
127  URL http://geogratis.gc.ca/maps/CBMT?service=wms&version=1.1.1&request=GetMap&SRS=EPSG:4326&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&STYLES=&LAYERS=National
128
129  WMSSERVER
130  URL http://geogratis.gc.ca/maps/CBMT?service=wms&version=1.1.1&request=GetMap&SRS=EPSG:4326&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&STYLES=&LAYERS=Sub_national
131
132  WMSSERVER
133  URL http://geogratis.gc.ca/maps/CBMT?service=wms&version=1.1.1&request=GetMap&SRS=EPSG:4326&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&STYLES=&LAYERS=Regional
134
135  WMSSERVER
136  URL http://geogratis.gc.ca/maps/CBMT?service=wms&version=1.1.1&request=GetMap&SRS=EPSG:4326&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&STYLES=&LAYERS=Sub_regional
137---------------
138
139      This means there are four different map layers you can get from that WMS
140      server. To see/use each one you'll need to create four different .geo
141      files for Xastir. The format of a WMS Server .geo file is exactly two
142      lines. Try using each of the two-line outputs from wms.pl as a start
143      towards creating your own .geo files.
144
145
146Getting Maps and other Data Files for Xastir:
147---------------------------------------------
148
149      NOTE:  Set map FILES to permissions 644 ("rw-r--r--"), map
150      DIRECTORIES to 755 ("rwxr-xr-x") using the "chmod" command.
151      These permissions will allow anyone on the box to read the map
152      files, and access the map directories. Type these
153      commands exactly as shown in order to set the map directory's
154      permissions properly.  Do this as the root user:
155
156      cd /usr/local/share/xastir/maps
157      find . -type d -exec chmod 755 {} \;
158      find . -type f -exec chmod 644 {} \;
159
160      You can repeat these commands at anytime, to fix up errant map
161      permissions that are created by downloading/installing new
162      maps.
163
164      Currently the maps/GPS directory needs to be writable by normal users
165      in order to support downloading GPS data using GPSMan.  This will be
166      changed at some future date, moving this directory into the user's
167      home directory instead.
168
169      cd /usr/local/share/xastir/maps
170      chmod 777 GPS
171      find GPS -type d -exec chmod 777 {} \;
172      find GPS -type f -exec chmod 777 {} \;
173
174
175
176    Download some maps:
177
178      If you compiled with ImageMagick and have wget or libcurl installed,
179      you can skip this step and use the online OSM/WMS maps
180      exclusively. However, having maps on your computer is often faster
181      than transferring images over a modem, and is not subject to the
182      failures of your Internet connection.  See the section below on map
183      caching for an exciting feature that works with most online maps to
184      really speed things up!
185
186      You can have any number of maps in the /usr/local/share/xastir/maps
187      directory.  You can organize the maps however you like. You can also
188      use symbolic links to link to files/directories on other disks. Map
189      files are loaded in the order that they appear in the chooser unless
190      you adjust the layering priorities in the "Properties" dialog (it's
191      recommended that you use these now instead of a directory hierarchy to
192      choose the layering).
193
194      There are many methods for organizing many maps. Create a map
195      hierarchy using something that makes sense to you. The old method of
196      creating transparent/filled or raster/vector directories has been
197      superceded by the new map layering features in the Map
198      Chooser->Properties dialog. It's now suggested that the map layering
199      be done there, and the directory layout designed to make it easiest
200      for the user to select maps. Perhaps a good start would be:
201
202           World/
203           Canada/
204           Canada/Province/
205           USA/
206           USA/State/WA/
207           USA/State/WA/County/
208           ...
209           GNIS/
210           Overlay/
211
212      Please note that the map directories are entirely up to the user
213      now. Use the map layering facilities (Map Chooser->Properties) to
214      determine the order in which they will be drawn, and to determine
215      which will draw filled areas.  Note that raster maps will always draw
216      filled, not matter what the setting suggests.  For vector maps, you
217      have a choice of:
218
219            Fill = No       Polygons will never be filled
220            Fill = Yes      Polygons will always be filled
221            Fill = Auto     Polygon fill is determined by map (or if it's a
222                            Shapefile, by any associated dbfawk file).
223
224      Map types available by extension:
225
226      Vector Format:
227      .shp/.shx/.dbf  Shapefile vector map (need all three files)
228      .map            APRSdos/WinAPRS/MacAPRS vector map
229      .gnis           GNIS labels file (actually points instead of vectors)
230      .geo            Vector map or Internet vector map.  Note that for
231                      http/ftp-based maps Xastir requires an IMAGESIZE line.
232
233      Raster Format:
234      .tif/.fgd       geoTIFF raster image map
235      .geo            Raster image map or Internet raster image map.  Note that
236                      for http/ftp-based maps Xastir requires an IMAGESIZE line
237                      unless using WMS maps.
238
239      Note:  .geo is listed twice because it can fit in both categories,
240      depending on the base format of the map file that the .geo file
241      points to.  .geo files are handled by the XPM library or by
242      ImageMagick, so most anything that can be handled by those installed
243      libraries can by handled by Xastir.
244
245      A few maps of various types are available from:
246
247        http://we7u.wetnet.net/xastir/maps/
248
249      Here's a page that we'll try to keep up-to-date which will have lots of
250      links to download-able maps on it:
251
252        http://xastir.org/index.php/Xastir_Maps
253
254     Dos/Win/MacAPRS style vector/fill maps:
255
256      http://www.winaprs.com/Maps.htm
257      http://www.cnunix.com/ftp/hamradio/rutgers.mirror/maps/maps2/
258      ftp://ftp.tapr.org/aprssig/maps/
259
260       WORLDHI.MAP is suggested as a basic view of the world map.
261
262      You can use any of the other maps available from this site. Many of
263      them were created from Tiger/Line maps, but they are several years out of
264      date. It is suggested that you don't use these as your primary
265      street-level maps; the newer shapefile-based maps are usually preferable.
266      In cases where you cannot compile shapefile support, these maps suffice.
267
268
269     PocketAPRS vector maps:
270
271      The WinAPRS 2.51 distribution included the full collection of
272      PocketAPRS vector maps for the USA. The download is about 60MB, from the
273      TAPR ftp site.
274
275        ftp://ftp.tapr.org/aprssig/winstuff/WinAPRS/waprs251.zip
276
277
278     Raster Maps:
279
280      For Canada there is a country wide set of topographic map images available
281      from the "Department of Natural Resources Geomatics Canada". Running
282      /scripts/toporama250k.pl will pull down 430mb of 1:250k map images
283      from that departments site. If thats not enough data, running
284      /scripts/toporama50k.pl will pull down around 10gigs
285
286**** Note that recent changes at the "Department of Natural Resources Geomatics
287Canada" have made these scripts fail.  Changes to the scripts are being coded
288and tested.  Git will be updated once the scripts are proven to work again. ****
289
290
291     For Ireland, EI8IC (http://www.mapability.com) has produced a set of overlay
292     maps that show the County Borders, Main Towns and Roads.  John, EI7IG, has
293     created a set of ".geo" files to go with them and they are all available in one
294     tarball from [http://ireland.aprs2.net/xastir/IrelandMaps/Ireland.tar.gz
295     ireland.aprs2.net] They are free for non-commercial use.
296
297     Also available are a map of the
298     [http://ireland.aprs2.net/xastir/IrelandMaps/Ireland1600x2000.bmp country], with
299     an associated [http://ireland.aprs2.net/xastir/IrelandMapsIreland1600x2000.geo
300     geo] file, the [http://ireland.aprs2.net/xastir/IrelandMaps/Ireland1600x2000.bmp
301     South East], its associated
302     [http://ireland.aprs2.net/xastir/IrelandMapsIreland1600x2000.geo geo] and a
303     [http://ireland.aprs2.net/xastir/IrelandMaps/IrishMET.geo Weather Radar] .geo file.
304
305
306     Shapefile format maps (Requires shapefile support):
307
308      Shapefile format maps are slowly becoming the standard vector format of
309      maps used with Xastir. Xastir 1.3.2 and above by default enable dbfawk
310      support for parsing shapefile metadata, see below.
311
312      A nice world map is available at http://aprsworld.net/gisdata/world/
313      thanks to James Jefferson, TerraSpace, Russia, and the Digital Chart
314      of the World (for Antarctica).  Note that this file is currently
315      available only in uncompressed or in tar/bzip2 format.  To decompress
316      the latter file, you'd type "bunzip2 filename" and then
317      "tar xvf filename".
318
319      Some other shapefile format maps are available at:
320      http://www.nws.noaa.gov/geodata/
321
322      Still other shapefiles are available from esri.com, geographynetwork.com
323      and gisdatadepot.com (from their "free data" link).  Lot's of useful
324      stuff at these sites, just look around.  You can also check
325      with your County GIS office for shapefiles of your county.  You can
326      convert them from State Plane to Lat/Long projection using
327      instructions later in this document.
328
329      Canada street maps in Shapefile format are available at
330      http://www.geobase.ca
331
332      If you also use GeoTIFF images, get the handy usgs_24kgrid.zip file from
333      http://data.geocomm.com/quadindex/.  This file provides a grid of all of
334      the 7.5' maps and their names for the U.S.
335
336      A nice world map is available at http://aprsworld.net/gisdata/world/
337      thanks to James Jefferson, TerraSpace, Russia, and the Digital Chart
338      of the World (for Antarctica).  Note that this file is currently
339      available only in uncompressed or in tar/bzip2 format.  To decompress
340      the latter file, you'd type "bunzip2 filename" and then
341      "tar xvf filename".
342
343      www.bts.gov has the "National Transportation Atlas" that you can download
344      pieces of (at least for the larger layers) or ask for (free) CD-ROM's to be
345      mailed to you.
346
347      -----
348      Re-projecting shapefiles (or: why doesn't my shapefile show up?)
349
350      A shapefile is pretty much just a collection of points and lines
351      between points.  Xastir expects that those points are expressed in
352      degrees of longitude and latitude with positive values indicating N
353      and E and negative values indicating S and W.
354
355      One often comes across shapefiles with data in some other format, such
356      as UTM or state-plane projections with units in meters or feet.  You
357      must re-project these sorts of shapefiles in order to use them in
358      Xastir.  You must either know what the current format is of the
359      shapefile you wish to re-project, or have the .prj file that some
360      shapefiles come with.
361
362      Fortunately, the shapelib-1.2.10 distribution (which you probably
363      compiled and installed to enable shapefile maps in Xastir) includes a
364      tool for performing this re-projection.
365
366      First make the shpproj utility by:
367
368      1. change to directory: <shapelib source directory>/contrib
369      2. type 'make' to compile the contrib files
370      3. Optionally install shpproj by copying it to /usr/local/bin
371
372      shpproj takes 4 arguments:
373
374          shpproj shp_file new_shp -i="in_params" -o="out_params"
375
376      shp_file is the name of your existing shapefile triad (without the
377      extension).
378
379      new_shp is the name of your new shapefile triad (which doesn't exist
380      yet).
381
382      -i="in_params" are the parameters describing the existing shapefile.
383
384      -o="out_params" are the parameters describing the new shapefile.  We
385      want this to be "geographic".
386
387      Examples:
388
389      Convert shapefile triad from US State-plane, South Central Texas region
390      (FIPS code 4204), in feet to geographic:
391
392        shpproj stateplane_shapefile geographic_shapefile \
393             -i="init=nad83:4204 units=us-ft" -o=geographic
394
395      Convert UTM zone 15 to geographic:
396
397        shpproj utm_shapefile geographic_shapefile \
398             -i="proj=utm zone=15 units=m" -o=geographic
399
400      To get a listing of the FIPS codes, you need to have proj installed
401      (see elsewhere in this file for more information).  Look in the
402      "<proj source directory>/nad/nad.lst" file.
403
404      For more detailed documentation, see the shpproj.txt file in the
405      "<shapelib source directory>/contrib/doc" directory.
406
407      There's a resource for looking up the FIPS codes for a particular
408      area:
409
410            http://www.aprs.net/fips/
411
412      An important note about using shpproj to re-project maps
413
414      The shpproj program cannot be used to convert shapefiles unless they're
415      already using the NAD83 or WGS84 datum.  shpproj will do the conversion
416      if you ask it to, but it will do it incorrectly.
417
418      A simple program to convert shapefiles between various projections
419      that does do datum conversions correctly is "shpcs2cs," available
420      from
421          <http://www.swcp.com/~russo/shape_web/>
422      That program requires libproj to be installed properly, and uses a
423      command line format similar to the "cs2cs" program that comes with
424      libproj.
425
426      If you already have GDAL installed, you should have the "ogr2ogr"
427      program available to you.  ogr2ogr will not only convert projections
428      and geodetic datum correctly, but will also convert format (ArcView
429      binary format to shapefile, TIGER/Line files to shapefile, etc.).
430      Some detailed instructions for using ogr2ogr to do this conversion
431      are available at
432          <http://www.swcp.com/~russo/shape_web/>
433
434      -----
435
436      Using "dbfawk" to interpret shapefile DBF data:  Each shapefile
437      map (*.shp, *.shx) comes with a DBase data file (*.dbf) in which
438      each shape in the .shp file has a corresponding set of descriptive
439      data about that shape in the .dbf file.  While shapefiles are all
440      a standard format and will most always draw (possibly after having
441      been re-projected with shpproj), the corresponding .dbf data varies
442      widely depending on the data source.  For example, US Census
443      Tiger/Line files contain 20 attributes for each shape including such
444      values as the name of the shape (i.e. street name), and a "Census
445      Feature Class Code" (CFCC) which indicates whether a shape is a
446      dirt road or a superhighway, for example.
447
448      In "pre-dbfawk" Xastir, knowledge of the various sources of
449      shape files was built into the program and it was necessary to
450      add code to support new shapefile sources (such as those
451      produced by local government agencies, non-US, etc.).  Xastir
452      with dbfawk moves this logic into metadata files named *.dbfawk.
453      These files are linked to the .shp/.dbf files they belong with in
454      one of two ways:
455        1. "Signature" recognition.  .dbfawk files located in the config/
456           directory are read to find the "dbfinfo" signature, which is
457           simply the ordered list of attribute names found in the .dbf file.
458           If you browse config/*.dbfawk you will see dbfawk's for the most
459           well know shapefile types.  For example, tgrlk.dbfawk matches
460           all the "tgr*lk?.dbf" US Census Tiger/Line files.  When a shapefile
461           map is displayed, its .dbf signature is matched up with one of
462           the config/*.dbfawk files.
463        2. "Tied" to a file.  If you installed a .dbfawk file in the same
464            directory as the .shp and .dbf files (e.g. sample.shp, sample.dbf
465            get a corresponding sample.dbfawk) then that file is used instead
466            of signature matching.
467      The first method allows a single .dbfawk file to be automatically
468      used for hundreds of standard shapefile maps.  The later allows you
469      to customize how your particular shapefile map displays.
470
471      What's in a .dbfawk file?  The best documentation of these files
472      is found by looking at the commented examples in config/*.dbfawk.
473      dbfawk is modeled after the "awk" pattern scanning and processing
474      language -- but, it is *not* exactly awk:
475        - Regular expression syntax is that used by Perl (the pcre library
476          is used) rather than pure awk.
477        - Action statements are much more limited than full-blown awk.
478        - The concept of records and fields is used since a .dbf record
479          is structured of usually several fields (name, feature type, etc.).
480      That said, what dbfawk does is allow a great degree of control of
481      how and when shapes and their names are displayed.  This is done by
482      setting the values of several "builtin" variables [Technically, these
483      are only built-in to shapefile support.  Potentially the awk-like
484      code can be extended to other uses.]:
485        dbfinfo:   the "signature" to match against.
486        dbffields: which fields to read from the .dbf file.
487        color:     what color code to display the shape with.
488        lanes:     width of the shape.
489        name:      name of the shape.
490        key:       search key (used for WX alerts to find the shape)
491        symbol:	   symbol for landmarks, etc.
492        filled:	   draw polygons filled.  Filled="Yes" or "No" in the Map
493                   Properties dialog will override this option.  Set to "Auto"
494                   in that dialog to have the dbfawk file control this.
495        fill_style: style of fill (0=solid, 1=FillTiled, 2=FillStippled, etc.)
496        fill_color: color of fill
497        fill_stipple: stipple pattern if fill_style=2 ("FillStipple")
498                      0=13 percent, 1=25 percent, 2=50 percent.
499        pattern:   solid or dashed lines.
500        display_level: at what zoom level to begin displaying the shape
501        label_level: at what zoom level to begin displaying labels
502        label_color: color to use for labels
503
504      Execution of a dbfawk file:  Just like awk, the file consists of
505      patterns that are matched against input data and actions to take
506      when the pattern matches.  There are four special patterns in dbfawk:
507        BEGIN_RECORD: action is executed just before parsing a record.
508        BEGIN: action is executed just before parsing a field.
509        END: action is executed just after parsing the field.
510        END_RECORD: action is executed just after parsing a record.
511      All other patterns are regular expressions that are matched against
512      a data value of <fieldname>=<value>.  For example:
513        FENAME=Main
514
515      Actions in dbfawk files consist of setting variables and two special
516      actions:
517        next: skips to the next field in the record.
518        skip: skips to the next record.
519      If neither next nor skip is given in the action, then processing falls
520      through to the next pattern/action pair in the dbfawk file.
521
522      The special dbffields variable is used to list which fields of the
523      record to be processed and in what order.  The order is significant
524      since it may take several DBF fields to build up a complete name.
525      For example, in Tiger/Line, the street name is actually the
526      concatenation of FEDIRP, FENAME, TYPE, FEDIRS.  Here's an excerpt
527      from tgrlk.dbfawk to demonstrate:
528        BEGIN {dbffields="TLID:FEDIRP:FENAME:FETYPE:FEDIRS:CFCC"}
529        ...
530	/^FEDIRP=(.+)$/ {name="$1 ";next}
531	/^FENAME=United States Highway (.*)$/ {name="$(name)US $1"; next}
532	/^FENAME=State Highway (.*)$/ {name="$(name)State $1";next}
533	/^FENAME=State Route (.*)$/ {name="$(name)SR $1";next}
534	/^FENAME=(.*)$/ {name="$(name)$1; next}
535	/^FETYPE=(.+)$/ {name="$(name) $1"; next}
536	/^FEDIRS=(.+)$/ {name="$(name) $1"; next}
537
538      Creating and testing dbfawk files:  You can test an existing dbfawk
539      file by setting debug level 16 in Xastir (this will generate a huge
540      amount of map rendering debug output, including dbfawk info):
541       "./xastir -v 16 2>/tmp/log"
542      Or, use "testdbfawk" which reads a .dbf file (or single field assignments
543      on the command line).  For example:
544
545    cd /usr/local/share/xastir
546	testdbfawk -D config -d Counties/mz01ap14.dbf 2>&1 | less
547    8 Columns,  479 Records in file
548    sig: ID:WFO:GL_WFO:NAME:AJOIN0:AJOIN1:LON:LAT
549    DBF Signatures match!
550    name=Lake Okeechobee, key=AM_Z610, symbol=, color=8, lanes=2, filled=0, pattern=0, display_level=65536, font_size=2, label_level=512
551    label_color=20
552    ...
553
554      testdbfawk takes the following command line syntax:
555        testdbfawk --help
556          Prints command line usage
557        testdbfawk -D directory -d file.dbf
558          Scans directory for dbfawk files with signatures matching file.dbf,
559          runs the dbfawk program that matches if it's found.
560        testdbfawk -f file.dbfawk -d file.dbf
561          runs the dbfawk file "file.dbfawk" over the dbf file "file.dbf"
562
563      So in the example above, testdbfawk scans the current directory
564      for dbfawk files with signatures that match tgr36119lkA.dbf's
565      signature.  testdbfawk dumps its output to standard error, so in
566      the example standard error is redirected to standard out and
567      piped into "less" for paging.
568
569      To create a .dbfawk file, you need to understand the layout and contents
570      of your .dbf file.  Use "dbfinfo" and "dbfdump" which are in the shapelib
571      contrib directory.  Dbfinfo will list the field names and dbfdump will
572      dump out all fields of all records.  Take the field names from dbfinfo,
573      and concatenate them together in order, separated by ":" to make the
574      dbfinfo= signature variable assignment.
575
576      Your best bet is to start with an existing .dbfawk file as an example.
577
578      Dbfawk hints and kinks:  You have to think like an awk programmer and
579      realize that the order that rules are listed matters, that it's important
580      to use "next" as soon as it makes sense so other rules aren't looked at
581      unnecessarily and, to use "skip" when you want to fix bad dbf data.
582      For example, my county's Tiger/Line maps have several coding errors
583      where a segment of a main highway is incorrectly labeled as a local
584      street.  This rule overrides one of those incorrect records:
585	# This Furnace Dock Rd segment is really Rt 9!
586	/^TLID=139773160$/ {name="Briarcliff-Peekskill Pky"; display_level=8192; label_level=512; color=4; lanes=4; skip;}
587      TLID is the Tiger/Line ID which is the unique identifier for this
588      segment.
589      -----
590
591    Rolling your own shapefile maps:
592
593    It is relatively easy to create your own shapefile maps (for example,
594    if you want to highlight a walk-a-thon course).  There are several
595    methods available with Xastir:
596
597    1. Use GPSMan to download a GPS track to a shapefile.
598
599    2. Save a station tracklog of an actual station or an object that
600       you manually move along the course.  When you select Station Info,
601       you are presented with the option to save the track, which gets
602       put in
603       .xastir/tracklogs/<datestamp>_<callsign>_APRS_Trail_<color>.*
604       You can move the .shp, .shx, and .dbf files to your maps directory.
605       Use DBFAWK to make a map-specific .dbfawk file.  For example:
606	BEGIN {dbfinfo="Credits:DateTime";dbffields="Credits:"}
607	BEGIN_RECORD {key=""; lanes=4; color=12; name=""; filled=0;
608           pattern=1; display_level=8192; label_level=32; symbol=""}
609       This makes the track width 4 and red (12).
610
611    3. You can use xastir's "object" capability to generate shapefile maps.
612       a) Turn off object transmission using
613          Interface->Disable Transmit:Objects
614       b) Put objects where you want.  Set the display symbol as you like it.
615       c) run the "object2shp.pl" script in the scripts directory
616           (/usr/local/share/xastir/scripts/object2shp.pl in most installations)
617          to generate a shapefile:
618            /usr/local/share/xastir/scripts/object2shp.pl ~/.xastir/object.log myshape
619          This requires the four shapelib utilities "dbfcreate", "shpcreate",
620          "shpadd" and "dbfadd" as described below.
621       d) EXIT XASTIR
622       e) REMOVE ~/.xastir/config/object.log
623       f) move "myshape.shp," "myshape.shx," and "myshape.dbf" to your maps
624          directory.
625       g) restart xastir.
626       h) select your newmap in the map chooser.
627      Creating maps in this way is basically just a scripted version of the
628      manual map generation technique in (4) below.
629
630    4. You can also use the shapelib tools (shpproj was presented earlier)
631       to manually create a shapefile.  For example, the following
632       marks out the mile-posts for a marathon, using tgrlpt.dbfawk
633       (US Census Tiger/Line landmark points with an APRS(tm) symbol extension)
634       for the metadata:
635       #!/bin/sh
636       # turn mileposts into a Tiger landmark shapefile
637
638       rm -f posts.shp posts.dbf
639       shpcreate posts point
640       dbfcreate posts -n ID 8 0 -s CFCC 3 -s NAME 30
641       shpadd posts -74.0570 40.6025
642       dbfadd posts 1 'X\m ' Start
643       shpadd posts -74.0443 40.6065
644       dbfadd posts 2 'X\m ' 1M
645       shpadd posts -74.0353 40.6093
646       dbfadd posts 3 'X\m ' 2M
647       shpadd posts -74.0268 40.6260
648       dbfadd posts 4 'X\m ' 3R
649       shpadd posts -74.0200 40.6277
650       dbfadd posts 5 'X\m ' 3G
651       shpadd posts -74.0270 40.6252
652       dbfadd posts 6 'X\m ' 3B
653       shpadd posts -74.0197 40.6395
654       dbfadd posts 7 'X\m ' 4R
655       shpadd posts -74.0203 40.6388
656       dbfadd posts 8 'X\m ' 4BG
657       shpadd posts -74.0077 40.6508
658       dbfadd posts 9 'X\m ' 5R
659       shpadd posts -74.0083 40.6503
660       dbfadd posts 10 'X\m ' 5BG
661       shpadd posts -73.9957 40.6623
662       dbfadd posts 11 'X\m ' 6R
663       shpadd posts -73.9962 40.6617
664       dbfadd posts 12 'X\m ' 6BG
665       shpadd posts -73.9850 40.6743
666       dbfadd posts 13 'X\m ' 7R
667       shpadd posts -73.9858 40.6738
668       dbfadd posts 14 'X\m ' 7BG
669       shpadd posts -73.9782 40.6865
670       dbfadd posts 15 'X\m ' 8M
671       shpadd posts -73.9597 40.6890
672       dbfadd posts 16 'X\m ' 9M
673       shpadd posts -73.9573 40.7007
674       dbfadd posts 17 'X\m ' 10M
675       shpadd posts -73.9622 40.7122
676       dbfadd posts 18 'X\m ' 11M
677       shpadd posts -73.9515 40.7230
678       dbfadd posts 19 'X\m ' 12M
679       shpadd posts -73.9520 40.7345
680       dbfadd posts 20 'X\m ' 13M
681       shpadd posts -73.9525 40.7465
682       dbfadd posts 22 'X\m ' 14M
683       shpadd posts -73.9403 40.7503
684       dbfadd posts 23 'X\m ' 15M
685       shpadd posts -73.9578 40.7587
686       dbfadd posts 24 'X\m ' 16M
687       shpadd posts -73.9556 40.7675
688       dbfadd posts 25 'X\m ' 17M
689       shpadd posts -73.9465 40.7808
690       dbfadd posts 26 'X\m ' 18M
691       shpadd posts -73.9372 40.7935
692       dbfadd posts 27 'X\m ' 19M
693       shpadd posts -73.9272 40.8047
694       dbfadd posts 28 'X\m ' 20M
695       shpadd posts -73.9343 40.8142
696       dbfadd posts 29 'X\m ' 21M
697       shpadd posts -73.9453 40.8050
698       dbfadd posts 30 'X\m ' 22M
699       shpadd posts -73.9525 40.7923
700       dbfadd posts 31 'X\m ' 23M
701       shpadd posts -73.9630 40.7810
702       dbfadd posts 32 'X\m ' 24M
703       shpadd posts -73.9720 40.7696
704       dbfadd posts 33 'X\m ' 25M
705       shpadd posts -73.9811 40.7683
706       dbfadd posts 34 'X\m ' 26M
707       shpadd posts -73.9763 40.7720
708       dbfadd posts 35 'X\m ' Finish
709    ---------
710
711    Splitting large Shapefile maps into regularly-sized tiles:
712
713      Look for "shp2tile" at http://imaptools.com/tools/, it does
714      exactly that.  This can speed up Xastir tremendously if you're
715      zoomed in quite a bit on a large Shapefile map (or maps).  If
716      it is broken into tiles Xastir only has to load the tiles of
717      interest instead of slogging through the entire large file
718      each time.
719
720
721    GeoTIFF Map files (requires GeoTIFF):
722
723      If you compiled in geoTIFF support, you can use USGS DRG topographic
724      maps. These are primarily useful to U.S. users. DRG topo maps can be
725      found for free for most states, and can be purchased for others.
726
727        http://www.bianifc.org/gis_gps/gps/drgfree.html
728        http://www.gisdatadepot.com
729
730      or try a google search with "free drg maps" as the search query.
731
732      If you have no luck finding free DRG maps, go to
733      http://www.geocomm.com/ and check out the "DRG Data Bundles"
734      they have available.  You can purchase a DVD containing all the
735      DRGs for an entire state in three scales, all of them usable in
736      xastir, for a relatively low price.  Be warned, however, that
737      parts of the US have DRGs that are produced by an agency other
738      than the United States Geological Survey, and these DRGs are not
739      necessarily in correct GeoTIFF format.  The areas covered by the
740      Tennessee Valley Authority appear to be among those, as one
741      xastir user discovered when purchasing a DVD of DRGs for North
742      Carolina.  It is still possible to use these DRG files, but they
743      need preprocessing.  See the section below entitled "Defective
744      GeoTIFF files need even more special processing."
745
746      Many useful US maps can be downloaded from the National Map Viewer:
747      http://nmviewogc.cr.usgs.gov/viewer.htm
748
749      Free FAA sectional charts can be downloaded from
750        http://aviationtoolbox.org/raw_data/FAA_sectionals/current/
751      This site was set up by someone who had a subscription to the FAA
752      DVD collection and made them available on the web (this is legal per
753      FAA's terms of use).  They are no longer being updated as of mid 2005.
754      These charts are in Lambert Conformal Conic projection, though, and
755      need to be converted with gdalwarp to be usable in xastir (see below).
756
757      Current, valid-for-navigation FAA sectional charts may be purchased
758      from the FAA at
759 	https://naco.faa.gov/ecomp/Catalog.aspx?a=AERO+NOS+DIGITAL
760      for about $1.50US each.  These files are also in GeoTIFF and are the
761      same type as those that are available on aviationtoolbox, but these are
762      updated every 6 months and are kept current.  You will have to process
763      them before viewing in xastir.
764
765      The 7.5' topo maps work the best so far.  Be sure to install the .tif AND
766      the .fgd files side-by-side into the map directories. Without the .fgd
767      file Xastir won't be able to crop the white border from the map.  Xastir
768      currently knows how to handle NAD27, NAD83, and WGS84 geoTIFF files.
769      GeoTIFF files created in other datums will be displayed at an incorrect
770      location with Xastir. The .tfw files included with most geoTIFF images
771      are not used by Xastir.
772
773      If you must make FGD files by hand, the included script mapfgd.pl can
774      create them for you from the USGS geoTIFF files. The format Xastir is
775      looking for is the following:
776
777        1.5.1.1  WEST BOUNDING COORDINATE:  -122.000000
778        1.5.1.2  EAST BOUNDING COORDINATE:  -120.000000
779        1.5.1.3  NORTH BOUNDING COORDINATE:  48.000000
780        1.5.1.4  SOUTH BOUNDING COORDINATE:  47.000000
781
782     -or-
783
784        1.5.1.1  West_Bounding_Coordinate:  -122.000000
785        1.5.1.2  East_Bounding_Coordinate:  -120.000000
786        1.5.1.3  North_Bounding_Coordinate:  48.000000
787        1.5.1.4  South_Bounding_Coordinate:  47.000000
788
789      Notes about DRG-Enhanced (DRG-E) files:
790      * The DRG-E files will draw over the correct spots if you remove
791      the .fgd file, but will overflow their boundaries and
792
793      * The DRG-E files will draw over the correct spots with decent
794      boundary trimming (as far as I can tell, which isn't very far:
795      correct me!) if you use a .fgd file taken from 'real' DRG files
796      from USGS.
797
798      Basically: get rid of the .fgd file from the DRG-E!!
799
800    Highly Compressed MrSID image files:
801
802      Be wary of DRG-E or DOQQ files that are compressed with MrSID
803      compression.  That is a proprietary compression format for
804      which we do not have access to the decoding algorithm.  We
805      cannot use those from within Xastir.  There's possible good news
806      lurking on the horizon though:  LizardTech has mentioned on the
807      gdal-dev mailing list that they might be supporting open-source
808      with a driver for gdal sometime soon.
809
810      It is also possible to decompress these files with a free tool
811      from LizardTech called "mrsiddecode", available at
812        http://www.lizardtech.com/download/dl_options.php?page=tools
813
814      mrsiddecode can produce GeoTIFF output with the right command line
815      options.  There is a Linux version of mrsiddecode, but one user
816      has observed that the Windows version running under Wine is a little
817      more robust.  Your milage may vary.
818
819      Be warned that MrSID is a very effective compression algorithm, and
820      compressed MrSID files of size 5MB could easily decompress into 50MB
821      GeoTIFFs.
822
823      Note also that many GIS departments take perfectly usable
824      GeoTIFF files with all projection and datum tags and use ESRI products
825      to compress them down into MrSID files, thereby losing all the
826      GeoTIFF tags.  See below.
827
828    GeoTIFF files in certain projections need special processing:
829
830      Not all geotiff files available on the net are usable directly in
831      xastir.  Some of them are in projections that xastir can't use
832      properly, and others are missing all of the metadata information that
833      is needed to work out how to convert them to Lat/Lon unprojected rasters.
834      If you encounter a geotiff file that has the correct tags, but is
835      in some projection other than UTM, you can convert that file to a
836      lat/lon raster if you have gdal installed.  Simply run the following
837      command:
838        gdalwarp -t_srs EPSG:4326 original_raster.tif usable_raster.tif
839
840      This will warp the geotiff file "original raster.tif" from
841      whatever projection it was in into an unprojected lat/lon raster
842      "usable_raster.tif" that can be directly read into xastir.
843      Depending on the source projection, you might get a map that
844      doesn't tile well with other maps due to the inclusion of opaque
845      border material, but it can sometimes be the only way to import
846      a map you need to use.
847
848    Defective GeoTIFF files need even more special processing:
849
850      It is unfortunately the case that the ESRI software in use by many
851      GIS departments produces GeoTIFF files that have NO information about
852      the coordinate system that applies to them --- they'll have just
853      enough information to know what the numerical coordinates of each
854      pixel are, but no information to tell you whether those coordinates are
855      UTM, Lat/Lon, State Plane, or anything else.  For such maps you will
856      need to determine the coordinate system by finding external files
857      called "metadata" that are associated with the images.  US
858      Federal datasources have a standardized file format (".fgd") that
859      provides this information, but many state or university GIS departments
860      just make some other format up for themselves.  Most sources of
861      map data should have such metadata available, but sometimes it is a bit
862      of a chore to find it.
863
864      You can determine whether a .tif file has coordinate system information
865      in it using the "gdalinfo" command from the GDAL suite or "listgeo" from
866      the libgeotiff distribution.  If gdalinfo shows something like this:
867
868        Driver: GTiff/GeoTIFF
869        Size is 5364, 7620
870        Coordinate System is `'
871        Origin = (588067.750000,5331248.500000)
872
873      you're the lucky owner of a file that has no coordinate system info
874      (because the only thing after "Coordinate System is" is a pair of
875      quotation marks).   Another dead givaway would be:
876         Metadata:
877           TIFFTAG_SOFTWARE=Arc/Info
878      which tells you that the image was processed with a piece of software
879      that fails to put in all the right tags.
880
881      If you get maps whose metadata say are in UTM projection but for which
882      gdal indicates missing geoTIFF tags like it does in the example above,
883      xastir won't be able to display them unless you fix them up.
884      Fortunately, the GDAL library tool "gdal_translate" can do the
885      job.  For example, if you have a source map with metadata that
886      says it's in UTM Zone 10, NAD83 datum, to make it suitable for
887      Xastir to read you can do something like this:
888
889      gdal_translate -a_srs EPSG:26910 original.tif georeferenced.tif
890
891      The inclusion of the "-a_srs" option to gdal_translate
892      forces the new tiff file to have the correct geotiff tags to
893      indicate that coordinate system.
894
895      The EPSG number to use for images in UTM projection with NAD83
896      datum is 26900 plus the UTM zone number.  The EPSG number for UTM in
897      NAD27 is 26700 plus the zone number.  The above command
898      will allow Xastir to read in the image and reference it
899      properly.  If you do the gdalwarp option above instead, you can end up
900      with solid color areas between the edges of the original image
901      and the lat/long rectangle that the image will be warped to; these
902      extra pixels represent "no data" areas due to the difference in shape
903      between the original rectangular image and the warped image.   The
904      color of this area depends on the colors present in the original
905      image; GDAL attempts to use a color that is different from any in the
906      source image.  If those areas don't matter to you, then either
907      method will work for you.  If you're planning to tile multiple
908      UTM images together, then the gdal_translate option is best.
909
910      If your maps are NOT in UTM, you must also gdalwarp, because xastir
911      cannot properly display geotiffs that are in projections other than
912      UTM or "unprojected" lat/lon.
913
914      EPSG numbers for odd-ball coordinate systems can be found at
915      http://www.remotesensing.org/geotiff/proj_list/Wkt_adam.zip
916
917      Maps that require gdalwarp include the FAA sectionals mentioned above,
918      and some topo maps in obscure state plane coordinates from various state
919      GIS departments.
920
921    XASTIR can only use GeoTIFF files that are 8-bit per pixel with one band
922
923      Some geotiff files contain multiple bands or multiple bytes per pixel.
924      Xastir currently uses only BYTE format, so you may need to convert the
925      geotiff file with gdal_translate.  The number of bands, bytes per
926      pixel and other information about geotiff files can be obtained using
927      gdalinfo.
928
929      One-band, 16- or 32-bit-per-pixel:
930       The command "gdal_translate -ot BYTE original.tif new.tif"
931       can convert 16 and 32 bit per pixel geotiffs to ones that can be used
932       by xastir
933
934      Multiple band, 8-bit-per-pixel:
935
936      The command "gdal_translate -ot BYTE -b 1 old.tif new.tif"
937      can extract a single band as a grey scale layer from a multi-band
938      geotiff file, but this is probably not what you really want.
939      The command
940            rgb2pct.py old.tif new.tif
941      can create a single band palette based geotiff from a three band rgb
942      tif by dithering the colors down to a small pallette.  This last
943      tool requires gdal built with Python support.  See the gdal
944      documentation for these tools for further information.
945
946    More manipulations of GeoTIFF files:
947
948      gdal also provides several additional tools that can be used to
949      tile maps or chop them up into smaller pieces, but explaining the
950      details of that process is probably beyond the scope of this document.
951      See the man pages for "gdal_translate" and "gdal_merge.py" for
952      an explanation of how those tools could be used to accomplish this.
953
954    .geo files/online maps & graphics:
955
956      If you have ImageMagick and wget or libcurl installed, .geo files
957      for NWS radars are available from one of these sites:
958
959          ftp://gcpoolz.com/geos/Srb_geos.zip
960          http://we7u.wetnet.net/xastir/maps/radar-geos.tgz
961
962      You'll probably want to add an IMAGESIZE line to each one to speed up
963      loading when some radars are offscreen: (bash syntax, modify for your
964      shell...)
965
966          for a in srb_*; do echo "IMAGESIZE 620 620" >> $a; done
967
968      NOTE:  For .geo files with an ftp or http address for fetching the image,
969      IMAGESIZE is currently a REQUIRED parameter in the .geo file.  For .geo
970      files where the image is resident on your hard drive, the IMAGESIZE tag
971      is optional.
972
973      Please also note that the coordinates in the .GEO files are expressed
974      in decimal degrees, and are listed with longitude first then latitude
975      on the TIEPOINT lines.
976
977      Other tags you can put in a .geo file:
978      DATUM: (not used, yet...)
979      PROJECTION: Currently only supports "TM" for transverse Mercator.
980      REFRESH: number of seconds to reload the maps.  Multiple maps
981          with different values pick the smallest value.
982      TRANSPARENT:  Color to remove from the background (make it transparent).
983          Use a number, 0=black.  Color-mapped images use the map value, so
984          white is usually 0xffff.  Value can be decimal or hex if preceeded
985          by "0x".  Multiple TRANSPARENT lines can be used in a file to make
986          multiple colors transparent.
987      CROP: removes borders.  Values are [left top right bottom] with
988          (0,0) at the upper left.  A good value for the NWS radar
989          images above is "CROP 35 20 616 600"
990      GAMMA, CONTRAST, NEGATE, EQUALIZE, NORMALIZE, LEVEL, MODULATE:  These
991          are all ImageMagick options, and are documented there, and
992          briefly in the xastir help file.
993
994
995     "Find Address" feature (US only):
996
997      The "Find Address" feature is based on the open source geo-coder by
998      Dan Egnor and as such uses the same format for the data. You can
999      download preprocessed data based on Census Tiger 2003 data at:
1000      http://www.dementia.org/geocoder/tgr2003/
1001
1002      Reprocessed geocoding files from the 2006 Second Edition TIGER/Line
1003      data were produced by Jason Winningham in June of 2007 and made
1004      available on the TAMU FTP server by Gerry Creager.  They are much
1005      better than the 2003 data, and it is recommended that they be used
1006      instead.  Download them from
1007         ftp://aprs.tamu.edu/pub/geocode/
1008
1009     Geographic Names Information System Labels:
1010
1011      These aren't maps, but are collections of name labels for locations.
1012      These display at various zoom levels like Dos/WinAPRS map labels, but are
1013      also searchable from the Maps menu.
1014
1015         http://geonames.usgs.gov/
1016
1017      Click the link "Download GNIS Data: State and Topical Gazetteers" on
1018      the left.
1019
1020      These files should be renamed in the form "<ST>.gnis" after download,
1021      where <ST> is the abbreviation for the state that they cover, and
1022      should be placed in the /usr/local/share/xastir/GNIS/ directory. To
1023      make sure that maps are layered correctly with GNIS labels on the top
1024      of the map stack, plus searchable, it is suggested that you link
1025      /usr/local/share/xastir/maps/z to this GNIS directory.
1026
1027      Type this as root to create the link and directories:
1028       cd /usr/local/share/xastir/maps
1029       ln -s ../GNIS z
1030
1031      The map files must end in ".gnis" to be used by Xastir, and must be in
1032      pipe delimited format.  These are readily available from the above link
1033      with such filenames as "AZ_DECI.TXT". The files must be renamed to
1034      <ST>.gnis, and the trailing whitespace should be removed for speed. This
1035      can be accomplished in one step with the following command. (bash
1036      style...)
1037
1038   for a in *deci; do sed -e 's/[ ]*$//g' < $a > `basename $a _deci`.gnis; done
1039
1040      Individual files can have whitespace removed as follows:
1041        sed -e 's/[ ]*$//g' < inputfile > outputfile
1042
1043      Populated places GNIS file can be had at:
1044
1045          http://geonames.usgs.gov/stategaz/POP_PLACES_DECI.zip
1046
1047      A note from Jason Winningham, kg4wsv:
1048
1049      "The file has over 181k records in it.  You can use the following command
1050      to weed out all places with populations less than 1000, and get it down
1051      to just under 14k records, which is really fast to load:
1052
1053        awk -F\| '{if ($17 > 1000) print $0}' \
1054            /usr/local/share/xastir/GNIS/0pop_places.gnis \
1055            >/usr/local/share/xastir/GNIS/0pop_places_over_1k.gnis
1056
1057      I stuck a zero at the beginning of the filename so this would
1058      show up in the GNIS directory before any of the state files."
1059
1060
1061     County weather Warning maps (requires shapefile support):
1062
1063       The latest shapefile format weather maps may be found here:
1064         http://www.nws.noaa.gov/geodata/
1065
1066       or more easily found here (but not guaranteed to be the most
1067       current:
1068         http://we7u.wetnet.net/xastir/Counties/
1069
1070       We now have a script in the xastir/scripts directory called
1071       "get-NWSdata" which fetches the files you need and plops them
1072       into the correct directory and unzips them.  Run that script
1073       as root.  It requires "wget" to work.  You may then try the
1074       NWS-TEST.log test shown below to verify proper operation.
1075
1076        --------------------------
1077        The files of interest are:
1078        --------------------------
1079
1080        NWSI Libraries:
1081        ---------------
1082        County Warning Area Boundaries (c_*.zip)
1083        Public Zone Boundaries (z_*.zip)
1084        Coastal and Offshore Marine Zones (mz*.zip, oz*.zip, hz*.zip)
1085        Fire Weather Zone Boundaries (fz*.zip)
1086
1087        County Libraries:
1088        -----------------
1089        AWIPS Counties (w_*.zip)
1090
1091      Unzip those files in the /usr/local/share/xastir/Counties/ directory and
1092      Xastir should find them and use them for weather alerts. Be sure to
1093      include the .shp, .shx, .and dbf.
1094
1095       Note that you can also use the county file as the background polygon
1096       filled map for drawing county lands and borders.  Either make a link
1097       to these files from your maps directory, or copy the files there so
1098       that they show up in the Map Chooser.
1099
1100      To test whether the weather alerts are working (whether weather?), copy
1101      the NWS-TEST.log file to your ~/.xastir/logs/ directory and then bring it
1102      in to Xastir using the File->Open Log File option.  Zoom in to the
1103      WA/OR/ID area (Pacific Northwest) and you should see a picture that looks
1104      like this:  <http://www.eskimo.com/~archer/xastir/xastir-wx-alerts.png>
1105      Note that you may have to change the dates embedded in the file if Xastir
1106      thinks they are expired.  See the notes at the top of that file.  If the
1107      alerts are still active they should appear in the View->Weather Alerts
1108      dialog.
1109
1110	Australian rules Weather Alerts
1111
1112		http://wxsvr.aprs.net.au/implementation.html
1113
1114     Download audio files:
1115
1116       To play the wav files you will need a program such as vplay to play the
1117       audio file through your sound card.
1118
1119       Grab xastir-sounds.tgz at the ftp site you downloaded Xastir, or at
1120        ftp://ftp.tapr.org/software_lib/Linux/xastir/xastir-sounds.tgz
1121
1122       Un-tar the file.  Put the sounds files into the
1123       /usr/local/share/xastir/sounds directory where Xastir can find them.
1124       (FIXME: thunder.wav is missing?).
1125
1126     Download FCC and/or RAC Database files:
1127
1128       If the FCC database is installed, a Search FCC Database button will
1129       appear in the station info box. If the RAC (Radio Amateurs of Canada)
1130       database is installed, a Search RAC Database button will appear for
1131       callsigns beginning with "VE" or "VA".
1132
1133       The download and installation of these is automated in the get-fcc-rac.pl
1134       script included with Xastir, but you may install them by hand
1135       individually if you wish as described here:
1136
1137       To use the FCC lookup:
1138       ----------------------
1139
1140         Download:
1141         http://wireless.fcc.gov/uls/data/complete/l_amat.zip
1142
1143         (The only file needed from this 87 Meg zip is the EN.dat file)
1144
1145         **** NOTE To use the data base file it must be sorted first!!! ****
1146
1147         unzip l_amat.zip
1148
1149         To sort the file, make sure you have plenty of disk space for this as
1150         the file is BIG!
1151
1152         cat EN.dat | /usr/bin/perl -pe 's/\r\r\n//g' | sort +4 -t \| > EN.dat.sorted
1153
1154         Install it in the xastir/fcc directory:
1155
1156         su
1157         mv EN.dat.sorted /usr/local/share/xastir/fcc/EN.dat
1158
1159
1160       To use the RAC lookup:
1161       ----------------------
1162
1163         Download:
1164         http://205.236.99.41/%7Eindicatif/download/amateur.zip
1165
1166         unzip amateur.zip
1167         mv AMATEUR.RPT /usr/local/share/xastir/fcc/AMACALL.LST
1168
1169
1170       Hiking trails from National Geographic's Topo or mapXchange:
1171       ------------------------------------------------------------
1172
1173        For those of you who may be familiar with National Geographic's Topo!
1174        program, there's a way to use the user-saved data (but not topo maps
1175        themselves) from within Xastir.  Many users create TPG and/or TPO
1176        files in TOPO from GPS data and/or hand-drawn routes.  They can then
1177        upload them to the mapXchange site, and in fact there are many hiking
1178        trails that one can download for free from that site.  Okay, how to use
1179        them?
1180
1181        Go to <http://www.gpsbabel.org>.  Go to the Project page and then the
1182        CVS page and follow the instructions for grabbing the CVS gpsbabel
1183        sources.  Only CVS has the Topo version 3.x support, which was just
1184        recently added (May 2006).  Follow their instructions for building/
1185        installing/using the program.  It's a command-line program where you
1186        specify the input and output formats and filenames.  Using this program
1187        you can snag the interesting data out of the files and convert it to
1188        GPX format.  Once you have that, you can use the "gpx2shape" script to
1189        convert them to Shapefiles.  Xastir can then use them as map files.
1190
1191
1192
1193WHERE TO FIND MORE INFO ON MAP DATUMS, ETC:
1194
1195    Geodesy:
1196    http://oceanservice.noaa.gov/education/geodesy/welcome.html
1197
1198    "Geodesy for the Layman"
1199    http://www.ngs.noaa.gov/PUBS_LIB/Geodesy4Layman/toc.htm
1200
1201
1202
1203MAP CACHING (WORKS WITH MOST ONLINE MAPS):
1204
1205    Map caching works in conjunction with the map download routines,
1206    which fetch maps from http or ftp addresses.  The map caching features
1207    use functions found in Berkeley DB 4.0 library, AKA libdb (version 4.0
1208    or better), to create and manage a cache directory and a persistent
1209    database of information about the files in the cache directory.  This
1210    directory defaults to ~/.xastir/map_cache.  The files under this
1211    directory can be cleaned up or removed by hand at any time - the
1212    caching routines will simply download the maps and put new entries
1213    into the .db file.
1214
1215    Map files are saved with filenames that include the number of seconds
1216    since the Unix epoch.  This allows the caching routines to easily
1217    determine the age of maps so that older cached maps can be deleted.
1218    This is currently (Dec 2004) controlled with a compile time maximum
1219    age setting.  See map_cache.h for specifics and for brief
1220    documentation about all of the map_cache functions.
1221
1222
1223
1224DRAWING YOUR OWN MAPS USING XASTIR ITSELF:
1225
1226    The final result here will be ESRI Shapefile vector maps that
1227    you can then use within Xastir.  You'll need Shapelib compiled
1228    into Xastir to make use of this feature (the private copy of
1229    Shapelib is fine for this).
1230
1231    Turn off Object Transmit first (Interface menu).
1232
1233    Place an object or item at the start location of your route.
1234
1235    Click on the "Move" button to active move mode, then move that
1236    object around the map.  Once you're done you'll have a bunch of
1237    straight lines that depict the course.
1238
1239    Now bring up Station Info on that object and click on the Store
1240    Track button.  If you've got Shapelib compiled in, you'll get a
1241    shapefile created with the track you just drew.
1242
1243    After you're done you can delete the object and then turn on the
1244    Object Transmit toggle again.  You'll end up transmitting the
1245    deleted final position of the object for a few hours unless you
1246    kill/restart Xastir, but that's ok.  Nobody will see it on their
1247    maps 'cuz it's a deleted object.
1248
1249    Look in ~/.xastir/tracklogs/ for the Shapefile.  Copy it to your
1250    maps directory, changing the name on the three files as you
1251    like, then create a dbfawk file for it if you want to change how
1252    it is drawn in Xastir.
1253
1254    Another way would be to drive the course with a GPS and then
1255    download the track via Xastir/GPSman to create a Shapefile map.
1256
1257    Yet another way would be to drive it with an APRS rig and then
1258    Store Track as described above.  You could also drive with
1259    GPS/Xastir (without APRS) to get a very detailed track and then
1260    save your own track.
1261
1262
1263
1264DRAWING SAR SEARCH SEGMENTS IN XASTIR:
1265
1266    Turn on "Draw" mode (togglebutton at the top of the main
1267    window).  The cursor should change to the Measure/Draw symbol.
1268
1269    Using the middle mouse button, click on each vertice until you
1270    are almost done describing a polygon (don't close it yet).  If
1271    you don't have a middle mouse button, clicking on BOTH mouse
1272    buttons at once will do it if you have "emulate third mouse
1273    button" enabled in your X-Windows configuration.
1274
1275    Go to Map->Draw CAD Objects->Close Polygon.  The polygon will
1276    get completed, the area enclosed will be computed, and a dialog
1277    will pop up asking you for more information.  You do not have to
1278    enter any information in this dialog, but a name of some type is
1279    helpful in order to be able to identify each segment when
1280    modifying/deleting/viewing these segments.
1281
1282    Note that these CAD Objects get saved in a file and reloaded
1283    each time you start Xastir, but they cannot currently be written
1284    out as a map file and used as a general map.
1285
1286    Note also that these CAD Objects don't get transmitted.  They
1287    are currently for local display only.
1288
1289    The display of various kinds of data related to these segments
1290    can be modified in the Map->Draw CAD Objects menu.  Modifying
1291    parameters for any segment is done in the
1292    Map->Draw CAD Objects->CAD Polygons dialog.
1293
1294    Click on the dashed line in the menus in order to separate that
1295    menu from the rest and allow you to keep the menu on the screen.
1296    This is very useful when drawing CAD Objects or changing
1297    display/filtering options.
1298
1299    Turn off "Draw" mode when you're done.  The cursor should return
1300    to normal.
1301
1302
1303
1304SUMMARY OF DISTANCE/AREA/ANGLE CALCULATIONS:
1305
1306
1307    DISTANCE:
1308    ---------
1309    *) Haversine formula (2-parameter atan version) for computing
1310    distance between two points, for our general distance routines:
1311
1312        calc_distance()
1313        calc_distance_course()
1314        distance_from_my_station()
1315
1316    *) Haversine formula (2-parameter atan version) in "Measure" for
1317    both the X/Y offsets and the total distance.
1318
1319    Haversine formula is more accurate for shorter distances than
1320    spherical trigonometry calculations.  Both methods are equivalent
1321    for longer distances.  Both are Great-Circle calculations (as
1322    opposed to Rhumb-line or planar geometry).  See the GIS FAQ for info
1323    on these methods.  Dr. Math website mentions both of these and refers
1324    people to the same GIS FAQ.
1325
1326    Also note that the Haversine formula is ill-conditioned if the
1327    two points are antipodal (on opposite sides of the Earth).  From the
1328    GIS FAQ: "but the error, perhaps as large as 2km (1 mi), is in the
1329    context of a distance near 20,000km (12,000 mi)."  For our purposes
1330    that's just fine.
1331
1332
1333    AREA:
1334    -----
1335    *) Area of a spherical rectangle from Dr. Math's website for the
1336    "Measure" function.  There are errors in their last two derived
1337    formulas.  They have been notified of it.  Our implemented code
1338    is correct.
1339
1340    *) The area calculation for CAD Object Polygons is probably not
1341    spherical, but closer to planar.  It might take some doing to calculate
1342    the area of irregular polygons on a spherical surface.  We use Greene's
1343    Theorem to compute the area based on the vectors.  The lengths of each
1344    vector are computed via the Haversine formula, so it's not strictly a
1345    planar area calculation either.  Somewhere in-between planar and spherical?
1346    This should be plenty good enough for areas that are less than 12 miles on
1347    a side (that's about where planar geometry starts to diverge from spherical
1348    trigonometry), perhaps also for somewhat larger areas than this due to the
1349    advantage of computing the vector lengths with the Haversine formula.
1350
1351
1352    ANGLE:
1353    ------
1354    *) Great Circle departure angle for the "Measure" function.
1355
1356    *) Great Circle departure angle for the calc_distance_course()
1357    function.
1358
1359    *) Dead-reckoning angle is essentially a Rhumb-line calculation
1360    (constant heading), with a few caveats:
1361
1362        We compute the next point along a constant angle based on the last
1363        position transmitted, the time elapsed, and the course desired.
1364        This then gets corrupted a bit either by the standard APRS grid that
1365        it has to snap to (and the position snapped to for the previous
1366        position) and/or by the relatively course angle available for Base-91
1367        compressed positions.
1368
1369        Standard APRS positions give 1-degree angular resolution but 60-foot or
1370        so grid points.  Base-91 Compressed positions give something like 1 to
1371        3-foot grid points but less angular resolution (+/- 2 degrees.  We
1372        can't win!
1373
1374        The end result is that we start off like a drunk sailer due to our
1375        short transmit times and the above limitations, then the angle smooths
1376        out as the time increases between the transmits.  You can see this
1377        easily at zoom level 1 when you place an object, when you make a change
1378        to an object, or move an object (transmit rate goes up for any of these
1379        conditions).
1380
1381    Dead-reckoning effectively does a Rhumb-Line calculation as it is
1382    trying to do a constant heading.  That means it is not the shortest
1383    distance between the points.  I'm still trying to get my head around
1384    that last concept as it is counter-intuitive to someone versed in
1385    compass/maps on land and with shorter distances.
1386
1387    A Great-Circle route is the shortest distance between two points on
1388    a sphere, whereas a Rhumb-line is what you get if you move along a
1389    constant compass heading and is a bit longer.
1390
1391    We probably do not need to go to ellipsoid calculations for Xastir.
1392    Spherical calculations should be easily accurate enough for what we do.
1393
1394
1395
1396  ------------------------------------------------------------------------
1397APRS(tm) is a Trademark of Bob Bruninga
1398
1399Copyright (C) 1999 Frank Giannandrea
1400Copyright (C) 2000-2019 The Xastir Group
1401
1402

README.OSM_maps

1
2Copyright (C) 2000-2019 The Xastir Group
3
4
5  Using OpenStreetMap in Xastir
6  ------------------------------------------------------------------------
7  CONTENTS
8     Introduction
9     Map Types
10     Map Sources and Renderings (Styles)
11     Map Cache
12     Sharing Tiles
13     Map Definition Files
14     Copyrights and Licenses
15
16
17  Introduction
18  ------------
19    What, you may ask is 'OpenStreetMap' (OSM)? From the web site,
20    www.openstreetmap.org, we read that
21
22        "OpenStreetMap is a free editable map of the whole world.
23         It is made by people like you".
24
25    The tag line for the map is "The Free Wiki World Map".
26
27    Xastir will display bitmap versions of the OSM. There are multiple
28    renderings of the OSM to choose from and, by default, nine (9)
29    are available in Xastir.
30
31  Map Types
32  ---------
33    Xastir can use two different map types based on OSM: static and
34    tiled. Static maps are bitmaps that are least as large as the Xastir
35    window. Tiled maps are built up from 256x256 pixel images.
36
37    Static maps are also assembled from tiles, but the assembly occurs
38    at the server and the full size image is downloaded to Xastir. There
39    is a major disadvantage to static maps: even slight changes in map
40    position requires a new map download.
41
42    Most online maps, includng OSM, use map tiles that follow the "Web
43    Mercator" projection and tiling scheme. The Web Mercator
44    projection was first popularized by Google Maps. It is a modified
45    Mercator projection, using a hybrid spheroid/ellipsoid model that
46    is faster to compute. Wikipedia has a nice description:
47    https://en.wikipedia.org/wiki/Web_Mercator.
48
49    Map tiles are referred to by their zoom level, and row and column
50    number. Major providers (such as OSM, Google, Apple, Mapbox, and
51    Bing) and open source projects (such as Open Layers and
52    openmaptiles.org) use the same general tile numbering scheme,
53    although they vary in the specific sequence of zoom/row/column
54    numbers, and the supporting parts of the URL. The URL for a
55    particular tile looks something like this:
56    https://a.tile.openstreetmap.org/11/329/715.png
57    (tile server a, zoom level 11, column 329, row 715).
58    You can see more in this Wikiepedia article:
59    https://en.wikipedia.org/wiki/Tiled_web_map.
60
61    Bitmap images, whether static or tiled, are available for only a
62    limited number of zoom levels. There are 18 possible zoom levels.
63    It takes 2^zoom tiles to represent 360 degrees. Since the tiles are
64    256 pixel squares, there are 2^(zoom + 8) pixels in 360 degrees.
65
66    When the Xastir scale is different from a bitmap image's zoom
67    level, the bitmap image is scaled. However, scaled bitmaps tend to
68    look ugly. The scaled bitmap can have jagged lines, unequal pixel
69    sizes, and/or missing information. At best a scaled bitmap looks
70    blurred, but more typically some pixels will be enlarged into visible
71    blocks or compressed invisibility.
72
73    You can use the F4 key to adjust the Xastir scale to approximate the
74    OSM zoom level and refresh the display. (The key can be changed by
75    modifying a variable in the OSM definition (GEO) files.
76
77
78  Map Sources and Renderings (Styles)
79  -----------------------------------
80    The OSM data is rendered into tiles using different styles. The
81    easiest place to view and compare the styles is at
82    http://ojw.dev.openstreetmap.org/StaticMap/?mode=Style&
83
84    Tiles can be retrieved from a number of servers. The supplied map
85    definitions will download tiles from http://tile.openstreetmap.org/
86
87  Map Cache
88  ---------
89    Static maps are cached with other bitmap map images in the
90    ~/.xastir/map_cache/ directory.
91
92    Tiles are cached separately to make it possible to share them
93    with other applications. By default tiles are cached in
94    ~/.xastir/map_cache/OSMtiles/, but that location can be changed on a
95    by-style basis. The tiles are organized directories by style, zoom
96    level, and longitude:
97
98      ~/.xastir/map_cache/OSMtiles/
99                             + <style1>/
100                             |    + <zoom>/
101                             |         <longitude>/
102                             |            + [0 ... (2^zoom - 1)].png
103                             + <style2>/
104                             ...
105
106     Note that 'longitude' is a tile number between 0 and (2^zoom -1).
107
108     Xastir downloads tiles as needed. If Xastir is compiled with
109     libcurl support, then it will check for updates to tiles that have
110     been cached for 7 days or more.
111     See http://wiki.openstreetmap.org/wiki/Tile_usage_policy
112
113     If a tile can not be downloaded for any reason or if the downloaded
114     file is not usable image, then the downloaded file (if any) will be
115     deleted and a red area will be shown in it's place on the display.
116
117     NOTE: Run Xastir at debug level 512 (-v 512) for more information
118           on download issues. At debug level 512, corrupt tile files
119           will not be deleted. Examining the contents of the corrupt
120           files can be informative.
121
122           If Xastir is compiled with libcurl support, then debug level
123           8192 will enable verbose output from libcurl.
124
125     WARNING: Corrupt tile files will not be deleted when running at
126              debug level 512. If you do not delete them manually before
127              restarting Xastir, then the first time Xastir displays the
128              tile it will be shown in red and then deleted from the
129              cache.
130
131
132  Sharing Tiles
133  -------------
134     The directory structure used to cache tiles is common to other
135     programs, though the style names are typically different. An
136     example of a program that can share tiles with Xastir is TangoGPS
137     (http://www.tangogps.org).
138
139     Here are some examples of how you can share tiles with TangoGPS
140     (the setup for other programs would be similar):
141
142       1) Setup a symlink at the style level of the caches
143           $ cd ~/.xastir/OSMmaps/
144           $ ln ~/Maps/<tangoStyleName>/ <xastirStyleName>
145
146       2) Change the Xastir map definition file to specify the TangoGPS
147          cache by changing the following variables (see the next
148          section for more information):
149             OSM_TILED_MAP-<tangoStyleName>
150             TILE_DIR /home/<user>/Maps
151
152       3) Share all styles and tiles by creating a symlink at the top
153          level of the cache. This also requires changing the Xastir
154          map definition files to specify the style names used by
155          TangoGPS:
156             $ cd ~/.xastir
157             $ rm -rf OSMmaps/
158             $ ln -s ../Maps OSMmaps
159
160
161  Map Definition Files
162  --------------------
163    OSM map type, style, server, cache directory, and function keys are
164    specified in Xastir GEO files. By default the files are located in
165    the /usr/local/share/xastir/maps/Online/ directory. The supplied
166    definition files have filenames of this form:
167
168       OSM_<name>.geo        - static maps
169       OSM_tiled_<name>.geo  - tiled maps
170
171    Where <name> is replaced with the style name. Note that <name> could
172    be any unique string and is not required to be the style.
173
174    Read the comments in the supplied definition files for more
175    information.
176
177
178  Copyrights and Licenses
179  -----------------------
180    Maps and tiles from the OpenStreetMap project are
181    Copyright OpenStreetMap and contributors, CC-BY-SA
182
183       http://www.openstreetmap.org/
184       http://creativecommons.org/licenses/by-sa/2.0/
185
186    in addition, tiles from CloudMade are
187    Copyright CloudMade, CC-BY-SA
188
189        http://www.cloudmade.com/
190        http://cloudmade.com/about/api-terms-and-conditions
191        http://cloudmade.com/terms_conditions
192
193    TopOSM tiles are a composite of CC-BY-SA and public domain data,
194    including MassGIS data. See
195    http://wiki.openstreetmap.org/wiki/TopOSM for more information.
196
197  Changing the Displayed Attribution
198  ----------------------------------
199
200    The licenses from OpenStreetMap and CloudMade require attribution
201    that is met, in part, by a label shown at the top left corner of the
202    map. Two label images have been provided, one shows icons and the
203    other shows black text on a white background.
204
205    You can change between the two label styles by changing a symlink:
206
207       $ cd /usr/local/share/xastir/maps/   # your installing may differ!
208       $ rm CC_OpenStreetMap.png
209       $ ln -s CC_OpenStreetMap_txt.png CC_OpenStreetMap.png
210          or
211       $ ln -S CC_OpenStreetMap_logo.png CC_OpenStreetMap.png
212
213
214  ------------------------------------------------------------------------
215

README.developers.md

1# Developer notes on creating releases
2
3Since the move to git, the old process we followed to push development
4snapshots and stable releases to SourceForge is no longer possible,
5nor especially helpful.  With git and github, we are doing away with
6the concept of development snapshots, because one can always just
7download a tarball of the current repo state from github.  We are also
8simplifying the stable release process, doing away with the difference
9between building a tarball release and building from a git clone.
10
11
12## Development snapshots
13
14Xastir migrated to git and github instead of cvs and sourceforge, and
15therefore creating "development snapshots" isn't necessary, because
16every commit is essentially a development snapshot that can be checked
17out by referencing its SHA-1 hash.  Furthermore, github allows users
18to download code as a tarball directly without needing to clone, so we
19need not make a duplicate process for it.
20
21## Stable Releases
22
23Stable releases are the enduring, numbered releases that tend to make
24it into official package repositories (eventually).  It is necessary
25to do more for these releases than just tag a repository state,
26because most package management systems require that a stable version
27of the code be downloadable, and don't support pulling
28versions-of-the-day out of source code management systems.
29
30Beginning with release 2.1.8 we stopped providing "configure" scripts
31and all the droppings from "bootstrap.sh" in release tarballs, and all
32users must now use "bootstrap.sh" as a first step in building Xastir.
33
34### Stable release process in a nutshell
35
36- Get master ready for a release.
37- Update version number.
38- Test everything.
39- Tag the repo.
40- Push the repo and the tag to Github.
41- Define a release on github and associate it with the tag.
42- Email interested parties that there has been a release.
43- Go back and update the version number on master and move on.
44
45### Stable release in gory detail
46
47- Make sure the current state of the master branch is what you want to
48  release.  This should include all documentation updates and help
49  file updates.  Only when the master branch is really ready to
50  release do you perform the following steps.  Let's assume we're
51  creating release X.Y.Z, and that our Xastir clone and working
52  directory is in ~/XASTIR/Xastir.
53
54- By our long-standing convention, stable releases are always even
55  numbers in the last field of the release number, and odd numbers
56  mean "this is a development version."  So whatever version number
57  appears in configure.ac on the master branch is going to be odd at
58  the moment, and you're going to pick X.Y.Z so that the new Z is
59  even.
60
61- Change the version number in configure.ac to X.Y.Z.  Grep around the
62  code and remember to fix any other places where the old version
63  string appears (there should, at this point, not be any).  Commit
64  this change:
65
66      git add configure.ac
67      git commit
68
69  Mention why you're doing this in the commit message (e.g., "Update
70  release version number").  Follow our commit log message guidance in
71  CONTRIBUTING.md
72
73- Run bootstrap.sh
74
75- Make sure the program builds:
76
77      mkdir build
78      cd build
79      ../configure [options]
80      make
81      cd ..
82
83  For safety's sake, you should remove the build directory now, too.
84
85      rm -rf build
86
87- You now have a working directory that should look
88  like what we want to distribute to users.  Check that there are no
89  uncommitted changes:
90
91      git status
92
93  should tell you you're on master, and that you're one commit ahead
94  of "origin/master", with nothing to commit and a clean working tree.
95  If it says anything else, figure out why and get the current working
96  tree to the right state, with all important changes committed
97  properly.
98
99- Create an annotated tag marking the current state of the repo as
100  your new release:
101
102      git tag -a -m "Xastir Release X.Y.Z" Release-X.Y.Z
103
104- At this point, you are almost done, but all of your changes are only
105  in your local repository clone.  Double check that it really works
106  by creating a tar file of your code from the tagged state, then try
107  to build it somewhere other than in your git checkout directory:
108
109
110      git archive --format=tar.gz --prefix=Xastir-Release-X.Y.Z/ Release-X.Y.Z > ~/src/Xastir-Release-X.Y.Z.tar.gz
111
112  This process will exactly reproduce what Github will be doing when
113  we're finished and actually create the release.  Now make sure it builds:
114
115      cd ~/src
116      tar xzf Xastir-Release-X.Y.Z.tar.gz
117      cd Xastir-Release-X.Y.Z
118      ./bootstrap.sh
119      mkdir build
120      cd build
121      ../configure [options]
122      make
123
124- If the sanity check above worked, you can throw away the testing
125  tarball and unpacked code:
126
127      cd ~/src
128      rm -rf Xastir-Release-X.Y.Z Xastir-Release-X.Y.Z.tar.gz
129
130  - If the sanity check did NOT work, then you need to go back to
131    your original working directory and fix any problems you found.
132    Commit your changes, and then MOVE THE TAG so it points to your
133    NEW proposed release:
134
135      git tag -d Release-X.Y.Z
136      git tag -a -m "Xastir Release X.Y.Z" Release-X.Y.Z
137
138    Now go back and redo the sanity check.  Repeat until the tarball
139    you created actually produces a working Xastir.
140
141- Now go back to your working directory and finish up by pushing the
142  code and tag to Github:
143
144      cd ~/XASTIR/Xastir
145      git push origin master
146      git push origin Release-X.Y.Z
147
148- Log in to github and go to the Xastir project releases page at
149  http://github.com/Xastir/Xastir/releases.  Click the "Draft a new
150  release" button.  Put your tag name (Release-X.Y.Z) into the
151  dialog box that says "Tag version" and Github will display a note
152  that it found a matching, existing tag.  Fill in the rest of the
153  form:
154
155    - Give the release a name ("Xastir Release X.Y.Z") that will
156      appear prominently above it in the releases list.
157
158    - Enter some release notes in the large text box below the title
159      where it says "Describe this release."  Ideally, you should list
160      release highlights (new features, bug fixes, etc.).  Use
161      Markdown to pretty up the text, using the Preview tab to render
162      the markdown until it looks the way you want it to.
163
164    - Click "Publish Release."
165
166
167- You have finished releasing the code as far as Github is concerned.
168  This new release will now appear on the "Releases" page, along with
169  links to tar and zip files for the source code and the release notes
170  you just created.  The fixed URL
171  https://github.com/Xastir/Xastir/releases/latest will always point
172  to the most recent release.  The source code download link will be
173
174    https://github.com/Xastir/Xastir/archive/Release-X.Y.Z/Xastir-Release-X.Y.Z.tar.gz
175
176  with the obvious change for the zip version.
177
178- The last step here is to announce the new release in all the usual
179  places.  These days it is probably enough to announce it on the
180  xastir mailing list, and possibly the aprssig and linux-hams groups.
181  No need to spam every ham radio mailing list.  On the other hand,
182  the Xastir wiki does recommend sending notification of all releases
183  (both development and stable) to:
184
185      - xastir at xastir.org
186      - nwaprssig at nwaprs.info
187      - aprssig at  tapr.org
188      - aprsnews at tapr.org
189      - macaprs at yahoogroups.com
190      - aprs at yahoogroups.com
191
192  and stable releases to:
193
194      - SAR_APRS at yahoogroups.com
195      - CSAR at yahoogroups.com
196      - aprs at mailman.qth.net
197      - linux-hams at vger.kernel.org
198      - linux at tapr.org
199      - linux-hams-using-ax25 at yahoogroups.com
200
201  This list is probably excessive nowadays, and probably contains a
202  lot of groups that are long gone.
203
204
205#### Getting master ready to move on
206
207All of this work got the X.Y.Z release done, which has now been
208finished and pushed to github.  Now we need to change the version
209number on the master branch so that development versions show a
210different version than releases.
211
212
213- Make sure you're still in your master branch in your main clone:
214
215      cd ~/src/Xastir
216      git checkout master
217
218
219- Edit configure.ac and change the version number to be one higher than the
220  release you just did.  So if you just pushed release 2.1.8, set the
221  version to 2.1.9.
222
223- Commit this change and push it to github.
224
225      git add configure.ac
226      git commit
227      git push
228
229  The release is done, and now the repo is ready for further development.
230

README.md

1# README
2------------------------------------------------------------------------
3
4 Please at least SKIM this document before asking questions. In fact,
5 READ IT if you've never successfully set up Xastir before. PLEASE!
6 READ IT! If you haven't read this file, and ask for help
7 expect to be told to READ the README file first! or RTFM :)
8
9 Contents:
10
11 0.    Important notice
12 1.    What is Xastir?
13 2.    How do I get Xastir & Git usage
14 3.    Quick startup
15 4.    Upgrading
16 5.    Identification notes
17 6.    OS-specific notes
18 7.    Gating weather alerts
19 8.    Boring legal stuff
20 9.    Mailing list
21 10.   Documentation
22 11.   Obtaining help
23
24------------------------------------------------------------------------
25
260. NOTICE
27
28   Please read this file carefully before trying to set up Xastir.
29   This software was developed to be used by licensed amateur radio
30   operators.  You are responsible for any information transmitted
31   or propagated on any network.
32
331. WHAT IS XASTIR?
34
35   Xastir is an open-source project to create a free X11 graphical
36   APRS(tm) client. APRS(tm) use amateur radio and Internet services to
37   convey GPS mapping, weather, and positional data in a graphical
38   application.  It has been developed by and for amateur radio
39   enthusiasts to provide real-time data in an easy to use package.
40
41   Xastir currently runs under several flavors of Linux and BSD Unix.
42   A few people are running Xastir on Solaris Unix, FreeBSD, Lindows
43   and Mac OS X, but there may be small changes necessary in order to
44   get Xastir to configure/compile on some systems.  There are a few
45   notes below which may help in this task.  Most of the developers use
46   Linux which makes it the best supported platform at the moment.
47
48   Xastir is an open-source project: Most sources, documentation, and
49   binaries are available under the GPL license, with a few modules
50   available under other open-source or public domain licenses.
51
52   More information on Xastir can be found here:
53
54   * http://xastir.org
55   * http://github.com/Xastir
56
57   including the latest releases, Git access (lets you
58   download the latest developers' code), and information on how to join
59   Xastir mailing lists.  Note that you must be subscribed in order to
60   post to the mailing lists.
61
62   SmartBeaconing(tm) was invented by Tony Arnerich (KD7TA) and Steve
63   Bragg (KA9MVA) for the HamHUD project.  They offer the algorithm to
64   other authors as long as proper credit is given and the term
65   SmartBeaconing(tm) is used.  Thanks to Tony and Steve for that
66   contribution!
67
68   -- The Xastir Group.
69
702. HOW TO GET XASTIR
71
72   Xastir is currently developed at
73   <http://github.com/Xastir/Xastir>
74   You can get the latest version of Xastir from there.
75
76   You might try <http://xastir.org> for help and information,
77   particularly the Xastir mailing list (listed near the bottom
78   of the page).
79
80   * Git USAGE
81
82     Obtain the *very latest* version of Xastir under development by
83     using Git.
84
85     See the file README.GIT for more details.
86
87   * Release version tarballs
88
89     You can get the latest packaged release source code without git
90     at https://github.com/Xastir/Xastir/releases.  Be warned that packaged
91     source tarballs may be quite old and not representative of the current
92     state of the project.  We highly recommend not using this method unless
93     you have a specific reason to stick to official releases.
94
953. QUICK STARTUP
96
97   See [README.Getting-Started](README.Getting-Started) for a
98   relatively quick overview of how to build and use Xastir.
99
100   Check the Xastir wiki (http://xastir.org) for OS-specific guidance
101   for building Xastir on your system.
102
103   WINDOWS USERS:  Please refer to the "README.CYGWIN" file for
104   specific instructions.
105
106   See the 'INSTALL' file in the Xastir source tree for detailed
107   information about configure.
108
1094. UPGRADING
110
111   Upgrading Xastir that has been built from a recent Git clone
112   is as simple as running "git pull" in the source tree and
113   recompiling.
114
1155. IDENTIFICATION NOTES
116
117   Packet radio modes, by their very nature, typically identify
118   themselves with every transmission. Xastir has a few features
119   targeted to people who used Xastir in demonstrations and other
120   broadcasts where Xastir itself is used over radio.
121
122   Xastir can auto-ID via voice if Festival is compiled in and/or via a
123   message splashed across the screen. It does this identification
124   every 9.5 minutes if enabled. These identification modes were
125   designed for broadcasting Xastir across fast-scan television (for
126   events perhaps). Set the "ATV_SCREEN_ID" variable to 1 to enable the
127   screen message, and "SPEAK_ID" variable to 1 to enable festival to
128   speak the message. These variables are in the
129   ~/.xastir/config/xastir.cnf file.
130
1316. OS SPECIFIC NOTES
132
133   [The OS-specific notes that were here were horribly outdated
134   and not maintained.  That text has been removed.  Please
135   see the Xastir wiki at http://xastir.org in the "Installation Notes"
136   section for OS-specific build guidance.]
137
1387. GATING WEATHER ALERTS, STATIONS, OBJECTS/ITEMS TO RF
139
140   ## Gating NWS Weather Alerts to RF:
141
142   If you wish to gate NWS weather alerts from the Internet onto RF, you'll
143   need to create a text file in the users directory as
144   ~/.xastir/data/nws-stations.txt
145   List each NWS station that you would like to transmit via RF. Wildcards
146   are implied for lengths of 3 or greater. Here's what an example file
147   looks like:
148
149       #
150       # Seattle, WA
151       SEANPW
152       #
153       # Portland, OR (any alert type)
154       PDX
155       #
156       # Pendleton, OR
157       PDTNPW
158       #
159       # Medford, OR
160       MFRNPW
161       #
162
163   All text should start at the beginning of the line.
164
165   Once that file is in place, you'll need to hook up to at least one
166   Internet server that is feeding you the weather alerts. You'll also need
167   to have at least one RF interface up and running with transmit enabled on
168   that interface. Make sure that "Interfaces->Disable Transmit: All" is not
169   selected.  You should now be gating NWS weather messages to RF.
170
171   Turn on igate logging and look at that log file to view what you're
172   sending out via RF. Don't forget to turn off logging or set up
173   auto-rollover of the log files, else your hard drive might fill up with
174   logging info. Auto-rollover of log files is typically accomplished via
175   CRON.
176
177   ## Gating Stations, Objects/Items to RF:
178
179   The latest code also allows gating packets from specific stations to RF
180   using the above method (except object/item packets).  You can also gate
181   objects/items to RF by name.  The same wildcarding rules apply as listed
182   above.  Callsigns or object/item names listed in this file are
183   case-insensitive, so they'll match any case in received packets.
184
185   Bob Bruninga, WB4APR, recommends gating these calls to RF:
186
187    SCOUTS, SATERN, KIDS, REDCROSS, FOUR-H, YOUTH, GUARD, MARS, JOTA
188
189   See his link: "Generic Callsigns for National Events" off this web page
190   for his current list of recommended callsigns:
191
192  http://www.aprs.org/aprs-jota.txt
193
194
1958. BORING LEGAL STUFF
196
197   Xastir is Copyright � by Frank Giannandrea. Xastir is
198   distributed according to the GNU General Public
199   License. There should be a copy of this license in the
200   file COPYING. If not, write to the Free Software
201   Foundation, Inc., 675 Mass Ave, Cambridge, MA
202   02139, USA.
203
204   As of Xastir 0.4.0 all changes made by the Xastir
205   development team to the Xastir source code and any related
206   files are Copyright (C) 2000-2019 The Xastir Group. The source
207   code will still be distributed according to the GNU General
208   Public License as Frank Giannandrea did in the past.
209
210   There is no warranty, implied or whatever. You use this
211   software at your own risk, no matter what purpose you put
212   it to.
213
214   You didn't pay for it, so don't expect magic.
215
216
2179. MAILING LIST
218
219   There are currently a couple of mailing lists about Xastir.
220   xastir@xastir.org is the one relevant for most users.
221
222   The xastir@xastir.org mail-list is dedicated to Bug
223   reports, technical questions, your thoughts or
224   suggestions on new features being added to Xastir, things
225   that should be removed or fixed, amazing problems that even
226   stump the guru's, etc... are what we want to see here.  You
227   must be subscribed to the list in order to post messages.
228
229   To subscribe to the Xastir mailing list, send email to:
230   xastir-request@xastir.org In the body of the message,
231   put "subscribe xastir"; or go to
232   http://xastir.org and click on "XASTIR MAILING LISTS" (in the
233   "Resources" section near the bottom) to subscribe.
234
235        ### DO NOT SEND FRANK EMAIL ABOUT XASTIR ###
236
237   Frank is no longer developing the Xastir code (although
238   he does put a word in every now and then) so don't bother
239   e-mailing him. If you have a serious problem, email the
240   Xastir mailing list and it will get to the coders.
241
242   Please, before posting to this list, see what things are
243   like, and when you do post, read over your post for
244   readability, spelling, and grammar mistakes. Obviously,
245   we're all human (or are we?) and we all make mistakes (heck,
246   look at this document! ;).
247
248   Open discussion and debate is integral to change and
249   progress. Don't flame others over mere form (grammar and
250   spelling), or even substantive issues either for that
251   matter. Please read and follow the mailing list rules.
252
253   A second mailing list, xastir-dev@xastir.org is intended for
254   developer's discussion.
255
25610. DOCUMENTATION
257
258    We're trying to get the documentation up to date. If you
259    feel that anything is missing here, or that anything should
260    be added etc, please email xastir@xastir.org about it,
261    thank you.
262
26311. OBTAINING HELP
264
265    Please read the file FAQ, and make sure you've followed any relevant
266    instructions in INSTALL. If the problem still exists, feel free to
267    ask on the Xastir mailing-list, as described above.
268
269
270  ------------------------------------------------------------------------
271APRS(tm) is a Trademark of Bob Bruninga
272
273Copyright (C) 1999 Frank Giannandrea
274Copyright (C) 2000-2019 The Xastir Group
275
276

README.qt

1LATEST STATUS:
2--------------
3The File->Exit and Interface->Interface Control portions work. No other
4menu options have been implemented. It will connect to a server and display
5raw packets as they come in, but there are no maps, symbols, etc. There's
6not any packet decoding either. The networking is both IPv4 and IPv6
7compatible. It compiles/runs fine and should be very cross-platform at
8this stage (must be compiled on each one though).
9
10
11INITIAL PREPARATION:
12--------------------
13Qt4 development tools are required for compiling -or- GUI design. For SuSE
14Linux they are in the "libqt4-devel" RPM package. This includes "qmake",
15"uic", and "designer" (Qt4 Designer).
16
17You'll also need the gcc-c++ compiler installed. For SuSE Linux that's in
18the "gcc-c++" package.
19
20You can do manual builds or builds from within Qt Creator. In general I
21describe manual builds here.
22
23
24MANUAL BUILD:
25-------------
26  cd Xastir/src/qt
27  ./build.sh
28
29
30RUN THE EXECUTABLE:
31-------------------
32  cd build
33  ./xastir_qt &
34
35
36GENERAL QT4 NOTES:
37------------------
38*) Do an out-of-source build to keep the source code directory pristine.
39   Perform all configure/compile commands from inside a "build" directory:
40
41   mkdir -p build
42   cd build
43
44*) Use QT 4 Designer to create the graphical elements. Each
45   dialog/window gets written out to a separate *.ui file.
46
47    designer &
48    Open->mainwindow.ui
49
50*) Manual compile of ".ui" files:  Use the "uic" compiler to compile
51   .ui files to .h files:  Note:  The "qmake" command below does this
52   automatically!
53
54    uic -o *.h *.ui
55
56*) moc -o mydialog.moc mydialog.h
57
58*) Use "qmake -project" to create the initial .pro file for the
59   os-independent build system.
60
61*) Include the .h files in the .cpp files for your C++ program.
62
63*) Use "qmake" to build the project.
64
65*) "make"
66
67Examples: (Generic, not for the Xastir project:
68  uic -o ui_mydialog.h mydialog.ui
69  moc -o mydialog.moc mydialog.h
70  qmake -project
71  qmake
72  make
73
74
75Once the project branch has been checked-out, these steps issued
76from the command-line should compile it:
77
78  cd Xastir/src/qt
79  mkdir -p build
80  cd build
81  qmake ../xastir-qt.pro
82  make
83
84
85Remember also that the *best* way to do multiple builds of an
86autoconfiscated code (and a qmake-ified code) is do do out-of-source
87builds, not in-source builds. Doing so keeps the source tree
88unpolluted with build droppings. Thus,
89
90  mkdir ~/builds/xastir-qt -p
91  cd ~/builds/xastir-qt
92  qmake ~/src/xastir/qt/xastir-qt.pro
93  make
94
95will build the qt stuff, and
96
97  mkdir ~/builds/xastir-motif -p
98  cd ~/builds/xastir-motif
99  ~/src/xastir/configure
100  make
101
102will build the normal build, and neither will interfere with the
103other.
104
105
106libqt4-devel rpm provides these binaries (as well as include files
107and others). Those with '*' are the ones we currently use:
108*   /usr/bin/designer
109    /usr/bin/lconvert
110    /usr/bin/linguist
111    /usr/bin/lrelease
112    /usr/bin/lupdate
113*   /usr/bin/moc
114    /usr/bin/pixeltool
115    /usr/bin/qdbuscpp2xml
116    /usr/bin/qdbusxml2cpp
117    /usr/bin/qdoc3
118    /usr/bin/qhelpconverter
119    /usr/bin/qhelpgenerator
120*   /usr/bin/qmake
121    /usr/bin/qt3to4
122    /usr/bin/qttracereplay
123    /usr/bin/qvfb
124    /usr/bin/rcc
125*   /usr/bin/uic
126    /usr/bin/uic3
127
128
129SPECIFIC NOTES:
130---------------
131
132
133Here's what Qt Creator does when you do a Build->Clean All:
134-----------------------------------------------------------
135Starting: /usr/bin/make clean -w
136make: Entering directory `/home/src/we7u/xastir/xastir-qt'
137rm -f moc_xastir.cpp
138rm -f ui_mainwindow.h
139rm -f main.o mainwindow.o moc_xastir.o
140rm -f *~ core *.core
141make: Leaving directory `/home/src/we7u/xastir/xastir-qt'
142Exited with code 0.
143
144
145Here's a Qt Creator Build->Build All command:
146---------------------------------------------
147Configuration unchanged, skipping QMake step.
148Starting: /usr/bin/make -w
149make: Entering directory `/home/src/we7u/xastir/xastir-qt'
150/usr/bin/uic mainwindow.ui -o ui_mainwindow.h
151g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. -o main.o main.cpp
152g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. -o mainwindow.o mainwindow.cpp
153/usr/bin/moc -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. xastir.h -o moc_xastir.cpp
154g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I. -o moc_xastir.o moc_xastir.cpp
155g++ -m64 -o xastir-qt main.o mainwindow.o moc_xastir.o -L/usr/lib64 -lQtGui -L/usr/lib64 -L/usr/X11R6/lib64 -lQtNetwork -lQtCore -lpthread
156make: Leaving directory `/home/src/we7u/xastir/xastir-qt'
157Exited with code 0.
158
159
160Here's a Qt Creator Build->Run qmake (I must have something misconfigured in my project):
161-----------------------------------------------------------------------------------------
162Starting: /usr/bin/qmake /home/src/we7u/xastir/xastir-qt/xastir-qt.pro -spec linux-g++-64 -r CONFIG+=debug QMLJSDEBUGGER_PATH=/usr/share/qtcreator/qml/qmljsdebugger
163Exited with code 0.
164
165
166<I'm pretty sure that Curt's notes below assume that there are
167left-over droppings from a previous qmake on another system. None of
168those files are still in CVS, so they shouldn't be relevant: you
169should always need to do a qmake from a fresh check-out, and you are
170highly advised to do an out-of-source build as noted above>
171
172LINUX:
173------
174For Linux:  Had to run "qmake;make" on a 32-bit system because all the files
175had been created on a 64-bit system.  On a 64-bit system just run "make".
176
177
178

README.sudo

1SUDO Instructions:
2------------------
3
4    "sudo" is a command that can make your life much simpler.  After you set
5    it up that is!  By adding a couple of lines to your /etc/sudoers file
6    (using the "visudo" command to edit this file), you'll be able to run a few
7    commands as root without having to type the root password each time.
8    Another thing you can do at that point is automate the entire
9    "git pull; mkdir -p build; cd build; ../configure; su; make install"
10    process via a script.  Here's how to set all of this up:
11
12    Type "su" to become the root user, then type "visudo".  This will bring up
13    the "vi" editor on the /etc/sudoers file.  If you'd like to learn more
14    about what I'm going to describe, type "man sudoers" in another window and
15    read about this file.  Another man-page that is useful here is the "man
16    sudo" page.
17
18    Back to the editing:  There's a section in there for user alias.  Mine is
19    labeled "# User alias specification".  Add a line there that reads like
20    this:
21
22        User_Alias XASTIR = username1, username2, username3
23
24    where username1, etc, are valid usernames that you wish to be able to do
25    Xastir installs.  For instance you might have:
26
27        User_Alias XASTIR = mikey
28
29    Next, add a line near the bottom that reads like this:
30
31        XASTIR ALL = NOPASSWD: /bin/chmod, /usr/bin/make
32
33    Now write out and close the file.  At this point the "mikey" user will have
34    root permissions when he/she runs the commands "/bin/chmod" or
35    "/usr/bin/make".  Make sure the paths to those programs are correct for
36    your system.
37
38    Exit from "su" so that you're a regular (non-root) user again.
39
40    Now, in the "xastir" source directory (mine is in "~/src/xastir"), create a
41    script that reads like this.  I named my script  "update-xastir" but nearly
42    any name for the script will do:
43
44    -----------------cut here--------------------
45        #! /bin/sh
46
47        git pull
48        ./bootstrap.sh
49        mkdir -p build
50        cd build
51        ../configure
52        sudo make clean
53        sudo make install
54        sudo chmod 4755 /usr/local/bin/xastir
55    -----------------cut here--------------------
56
57    Now type "chmod u+rwx update-xastir" to make that script executable.
58
59    Actually, we've just created a script for Xastir that implements the above
60    and called it "update-xastir".  Do a "git pull" to get it.
61
62    Try out the script.  Type:
63
64        ./update-xastir
65
66    It should run through the entire update/configure/make/install process for
67    Xastir.  Remember to either change to the proper xastir directory before
68    running it, or add a "cd" command at the beginning of the script so that it
69    will run in the proper directory in all cases.  If you add the proper "cd"
70    command you can copy the script to /usr/local/bin and then run it as
71    "update-xastir" from anywhere.
72
73    Windows users:  You may need to remove the "sudo" keyword on each line to
74    have it work properly for you.
75
76    A note from Gerry Creager as to another way to set up the sudoers file:
77
78      "I now consider it a good idea to add the "gifted" users to the 'wheel'
79      group and then solely enable wheel in /etc/sudoers; I've seen a recent
80      article also supporting this."
81
82
83  ------------------------------------------------------------------------
84Copyright (C) 1999 Frank Giannandrea
85Copyright (C) 2000-2019 The Xastir Group
86
87