README.md
1What is CQRLOG?
2---------------
3
4CQRLOG is an advanced ham radio logger based on MySQL database. Provides radio control
5based on hamlib libraries (currently support of 140+ radio types and models), DX cluster
6connection, online callbook, a grayliner, internal QSL manager database support and a most
7accurate country resolution algorithm based on country tables developed by OK1RR. CQRLOG is
8intended for daily general logging of HF, CW & SSB contacts and strongly focused on easy
9operation and maintenance. More at https://www.cqrlog.com/
10
11![Image of CQRLOG](https://cqrlog.com/images/users/ok2cqr.png)
12
13How to contribute?
14-------------------
15
16You have to have Lazarus 2.0.6, fpc 3.0.4 compiler, MySQL server and clinet installed.
17CQRLOG is developed on Ubuntu 20.04, Lazarus and FreePascal are available in my pesronal repo https://launchpad.net/~ok2cqr/+archive/lazarus
18
19Compile with make and install with make DESTDIR=/home/yourusername/where_you_want_to_have_it install. If you are
20going to change the source code, fork the repo, do the changes, commit them and use Pull request.
21
22Dependencies
23-------------
24
25Build-Depends: lazarus, lcl, fp-utils, fp-units-misc, fp-units-gfx, fp-units-gtk2, fp-units-db, fp-units-math, fp-units-net
26
27Depends: libssl-dev, mysql-server | mariadb-server, mysql-client | mariadb-client, libhamlib2 (>= 1.2.10), libhamlib-utils (>= 1.2.10)
28
29Running build with Docker
30-------------------------
31
32If you do not want to install the dependencies into your main machine, you can do the build
33in a Docker container. You need to mount into that Docker container this directory and
34also the target directory where you want to put the alpha version of `cqrlog` you are
35building.
36
37This also helps if you want to build, e.g., on a Debian Stretch machine. Attempts at
38native builds on that platform have failed. Using a reasonably recent Ubuntu inside our
39Docker-based build environment, makes the build work even on Debian Stretch.
40
41That bad news is, you have to [install Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/) (CE is fine).
42
43That done, you can prepare an Ubuntu Docker image with the build tools as follows:
44
45 (cd docker-build && docker build -t this.registry.is.invalid/cqrlog-build .)
46
47(In case you wonder: There is no need to use a Docker registry, so we provide a registry
48host that is guaranteed to not exist.)
49
50Then, run the build itself with
51
52 sudo mkdir -p /usr/local/cqrlog-alpha &&
53 docker run -ti -u root -v $(pwd):/home/cqrlog/build \
54 -v /usr/local/cqrlog-alpha:/usr/local/cqrlog-alpha this.registry.is.invalid/cqrlog-build
55
56To use your build, make sure that you have no instance of `cqrlog` running, backup
57`$HOME/.config/cqrlog` (if you ever used `cqrlog` before), add
58`/usr/local/cqrlog-alpha/usr/bin` to your `$PATH` and start `cqrlog` from there.
59