Skip to content

Building tomboy ng

David Bannon edited this page Nov 15, 2022 · 16 revisions

Building-tomboy-ng

Don't edit this wiki page, its generated from a note in tomboy-ng's doc dir.

This page is about building tomboy-ng from source and contributing to its development. Important - You do not need to do any of this to just use tomboy-ng, a key feature is its absolute minimal requirements at install time.

Tomboy-ng is built on Linux, Windows or Mac using -

  • Free Pascal Compiler - https://freepascal.org/ - version 3.2.0 or later.

  • Lazarus - https://www.lazarus-ide.org/ - version 2.2.0 (earlier versions may have some specific bugs, can be patched but .... Lazarus Fixes or trunk don't need patches either.)

  • Note that Lazarus 2.2.0 and later can better handle the problems that the Gnome Desktop has with the System Tray Icon. Strongly recommend Lazarus 2.2.2 or later for Gnome users.

  • kcontrols - https://bitbucket.org/tomkrysl/kcontrols - current version requires no patches.

Pascal ?

Pascal as a computer language is quite old, in the early days of the PC it went toe to toe with C and lost. But it still has quite a following and current estimates place it in the top twenty languages. Today, Object Pascal is a very functional object orientated language that drives Delphi and its cross platform open source rival, Lazarus.

Pascal is still widely used as a teaching language, its strong typing promotes good programming habits and allows the compiler to pick up many common errors. Lazarus provides the easy to use cross platform IDE where a programmer can drag components onto a form and then attach code to the component's events. Its very quick and easy.

Build tomboy-ng using the IDE

You are strongly encouraged to try building tomboy-ng for yourself. While Linux users may be able to get appropriate packages through their distribution, all users are advised to use current versions. Please see https://wiki.freepascal.org/Installing_Lazarus

Start Lazarus up, it runs through a check list of the things it needs, start the IDE. Lazarus opens a default, minimal project. Click Package->OnLinePackageManager, select kcontrols and Install ("from repositary"). Lazarus will want to rebuild itself and restart, say yes, please do!

You can now load the tomboy-ng project. Close any existing project, click open project and browse for the tomboy-ng project file, it has an extension of .lpi

Its also possible, and sometimes a good idea to build Lazarus from source. See the Lazarus wiki for more information.

Building Deb SRC Packages

Linux Deb Packages come in two varieties, Binary only and Source. A Source package is a bundle that can be used to build a binary package, possibly on other systems. A Source package is required by Ubuntu in its PPA model or to submit to the Debian repositories.

The tomboy-ng 'kit' includes tools to make a debian source package, and the same tools may be useful for someone who just needs to build a Linux binary. As of v0.30, this model is used to populate the Ubuntu tomboy-ng PPA, useful for U18.04 and later Ubuntu systems.

tomboy-ng will build using FPC3.2.0 and Lazarus 2.0.10. Debian Buster has FPC 3.2.0 and Lazarus 2.0.10, fine. I have established a Ubuntu PPA providing FPC320 and Lazarus 2.0.10 for harder systems. It is also possible to build Lazarus 2.0.10 (or 2.0.12) on a system with FPC 3.2.0.

See the Deb_SRC.readme file in the tomboy-ng kit for details.

Building Releases

This section intended for production releases, not DIY. The author has a Linux VB that has FPC 3.2.2 cross compilers to build ARM, 32 and 64bit Linux and Windows binaries. In the 'package' directory, there is a script that does so. That script makes a 32bit and 64bit deb files and a directory containing windows binaries along with necessary files to make a Windows installer.

Take the Windows Win_Pre{$ver} directory to a windows machine that has the Installer Maker (ISS) and double click the .iss file to make the Windows installers.

The Mac kits are made on a Sierra Mac, again using a script. Requires similar setup to above.

Packman kits built on my 21.2-X VM, using the script in scripts dir.