Package: metarace-roadmeet
metarace-roadmeetTiming and result application for UCI Part 2 Road Races,
UCI Part 5 Cyclo-Cross, criterium, road handicap and
ad-hoc time trial events.UsageCreate a new meet and open it:$ roadmeetOpen an existing road meet:$ roadmeet PATHEdit default configuration:$ roadmeet --edit-defaultSupportSignal Group:metaraceGithub Issues:issuesRequirementsPython >= 3.9PyGObjectGtk >= 3.0metarace > 2.1tex-gyre fonts (optional, recommended)evince (optional, recommended)rsync (optional)mosquitto (optional)Automated InstallationFor semi-automated installation on common unix-like
desktop systems, download theinstall scriptand run with sh:$ sh install.shManual InstallationInstall system requirements for your OS (SeeSystem-Specific Preparationbelow) then prepare a metarace runtime directory
and virtual env as follows:$ mkdir -p ~/Documents/metarace
$ python3 -m venv --system-site-packages ~/Documents/metarace/venvInstall roadmeet to the virtual env, or run from
source using one of the following methods:Install From PyPI With PipUse pip in your virtual env to download and install
roadmeet along with any required python packages
from the Python Package Index:$ ~/Documents/metarace/venv/bin/pip3 install metarace-roadmeetCreate a new empty roadmeet:$ ~/Documents/metarace/venv/bin/roadmeetInstall From WheelDownload the roadmeet wheel from github and verify signature:$ wget https://github.com/ndf-zz/metarace-roadmeet/releases/download/v1.13.3/metarace_roadmeet-1.13.3-py3-none-any.whl
$ wget https://github.com/ndf-zz/metarace-roadmeet/releases/download/v1.13.3/metarace_roadmeet-1.13.3-py3-none-any.whl.asc
$ gpg --verify metarace_roadmeet-1.13.3-py3-none-any.whl.ascUse pip in your virtual env to install the roadmeet wheel:$ ~/Documents/metarace/venv/bin/pip3 install ./metarace_roadmeet-1.13.2-py3-none-any.whlCreate a new empty roadmeet:$ ~/Documents/metarace/venv/bin/roadmeetRun From Source TreeActivate the virtual env, optionally install
any required libraries, clone the repository
and run roadmeet directly:$ source ~/Documents/metarace/venv/bin/activate
(venv) $ pip3 install metarace
(venv) $ git clone https://github.com/ndf-zz/metarace-roadmeet.git
(venv) $ cd metarace-roadmeet/src
(venv) $ python3 -m roadmeetPost-Installation NotesRun roadmeet once to initialise a metarace shared configuration:$ ~/Documents/metarace/venv/bin/roadmeetOptionally configure defaults for new meets and library options:$ ~/Documents/metarace/venv/bin/roadmeet --edit-defaultGnome DesktopBy default, Gnome uses a system font which does not have
fixed-width digits. As a result, rolling times displayed
in roadmeet will jiggle left and right as the digits change,
and right-aligned time columns will not align correctly
at the decimal point.To correct this, install gnome-tweaks and change the
system font to one with fixed-width digits eg:
Noto Sans Regular.XFCEThe XFCE default window manager uses function keys to switch
workspaces, rendering them inaccessible to roadmeet.
To use these function keys in roadmeet (eg for
reports, arming and reset), first clear the relevant
window manager shortcuts.Under Settings, Window Manager, Keyboard, locate the
"Workspace N" entries and clear the shortcut for each one by
selecting the "Clear" button.Roadmeet can be configured to open meet folders in Thunar
by creating a custom action with appearance conditions
set to include "Directories". The action can then be
added to the toolbar or triggered from a context menu.Following an automated install, you may need to log out
and back in for the menu entries to be properly updated.System-Specific PreparationDebian 11+, Ubuntu, Mint, MX (apt)Install system requirements for roadmeet and metarace with apt:$ sudo apt install python3-venv python3-pip
$ sudo apt install python3-cairo python3-gi python3-gi-cairo
$ sudo apt install gir1.2-gtk-3.0 gir1.2-rsvg-2.0 gir1.2-pango-1.0
$ sudo apt install python3-serial python3-paho-mqtt python3-dateutil python3-xlwtOptionally add fonts, PDF viewer, rsync and MQTT broker:$ sudo apt install fonts-texgyre fonts-noto evince rsync mosquittoAdd your user to the groupdialoutin order to access serial ports:$ sudo gpasswd -a "$USER" dialoutArch, Manjaro, EndeavourOS (pacman)Install system requirements with pacman:$ sudo pacman -S --needed python python-pip gtk3
$ sudo pacman -S --needed python-pyserial python-dateutil python-xlwt python-paho-mqtt python-gobject python-cairoOptionally install pdf viewer, fonts, rsync and mqtt broker:$ sudo pacman -S --needed noto-fonts tex-gyre-fonts evince rsync mosquitto
$ sudo systemctl enable mosquitto.serviceAdd your user to the groupuucpin order to access serial ports:$ sudo gpasswd -a "$USER" uucpGentoo LinuxInstall required system libraries, or select a
suitable meta-package (eg XFCE):# emerge --ask -n xfce-base/xfce4-meta x11-themes/gnome-themes-standardInstall required python packages:# emerge --ask -n dev-libs/gobject-introspection dev-python/pygobject dev-python/python-dateutil dev-python/xlwt dev-python/pyserial dev-python/paho-mqttInstall optional fonts, pdf viewer and MQTT broker:# emerge --ask -n media-fonts/tex-gyre media-fonts/noto app-text/evince app-misc/mosquitto net-misc/rsyncAdd your user to the groupdialoutin order to access serial ports:# gpasswd -a "username" dialoutAlpine Linux (apk)Setup a desktop environment, then add python requirements
with apk:# apk add py3-pip py3-pyserial py3-dateutil py3-paho-mqtt py3-gobject3 py3-cairoInstall optional fonts, pdf viewer, rsync and MQTT broker:# apk add font-noto evince rsync mosquittoInstall Tex Gyre fonts from Gust:$ wget https://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg2_501otf.zip
$ mkdir -p ~/.local/share/fonts
$ unzip -j -d ~/.local/share/fonts tg2_501otf.zip
$ fc-cache -fAdd your user to the groupdialoutin order to access serial ports:$ sudo gpasswd -a "$USER" dialoutFedora Linux (dnf)Install system requirements:$ sudo dnf install gtk3 gobject-introspection cairo-gobject
$ sudo dnf install python3-pip python3-cairo
$ sudo dnf install python3-pyserial python3-paho-mqtt python3-dateutil python-xlwtOptionally add fonts, PDF viewer, rsync and MQTT broker:$ sudo dnf install google-noto-sans-fonts google-noto-mono-fonts google-noto-emoji-fonts texlive-tex-gyre evince rsync mosquitto
$ sudo systemctl enable mosquitto.serviceAdd your user to the groupdialoutin order to access serial ports:$ sudo gpasswd -a "$USER" dialoutSlackwareInstall a desktop environment (eg XFCE),
python packages will be installed
as required by pip.Note: Slackware does not ship evince with the XFCE
desktop, but sets it as the Gtk print preview application.
To enable print preview, install evince from slackbuilds,
or add an entry in ~/.config/gtk-3.0/settings.ini
to point to another application:[Settings]
gtk-print-preview-command=xpdf %fInstall Tex Gyre fonts from Gust:$ wget https://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg2_501otf.zip
$ mkdir -p ~/.local/share/fonts
$ unzip -j -d ~/.local/share/fonts tg2_501otf.zip
$ fc-cache -fAdd your user to the groupdialoutin order to access serial ports:$ sudo gpasswd -a "$USER" dialoutFreeBSDInstall a desktop environment (eg XFCE), then
install optional components with pkg:# pkg install evince rsync mosquittoAdd user to groupdialerin order to
access serial ports:# pw group mod -n dialer -m opInstall Tex Gyre fonts from Gust:$ wget https://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg2_501otf.zip
$ mkdir -p ~/.local/share/fonts
$ unzip -j -d ~/.local/share/fonts tg2_501otf.zip
$ fc-cache -fNote: Use callout serial devices for decoder access. For example,
a race result active decoder on the first USB serial port:rru:/dev/cuaU0MacOS / BrewUntestedInstall system requirements:$ brew install python@3.11 gtk+3 librsvg pygobject3Add optional pdf viewer and mqtt broker:$ brew install evince rsync mosquittoInstall Tex Gyre fonts from Gust:$ wget https://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg2_501otf.zip
$ mkdir -p ~/.local/share/fonts
$ unzip -j -d ~/.local/share/fonts tg2_501otf.zip
$ fc-cache -fWindows / MSYS2 (pacman)Note: Roadmeet has been developed to work under
a modern desktop POSIX host system.
Instructions below will yield a working roadmeet
with MSYS2, however, Windows users unwilling to run
a dedicated host system may have a better experience
running roadmeet from an emulator loaded with a
well-supported POSIX system like Debian Gnu/Linux or FreeBSD.Download and install MSYS2 frommsys2.org.From the mingw64 environment, install gtk and python libraries
with pacman (the following assumes x86_64 as the target):$ pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-gobject-introspection 
$ pacman -S mingw-w64-x86_64-python-gobject mingw-w64-x86_64-python-dateutil mingw-w64-x86_64-python-pyserial mingw-w64-x86_64-python-xlwtThen use pip to install roadmeet:$ pip3 install metarace-roadmeetOptionally install Tex Gyre Fonts to the host:Download OTF fonts fromgust.org.plExtract and install fonts using ExplorerOptionally install mosquitto to the mingw64 environment:$ pacman -S mingw-w64-x86_64-mosquittoRoadmeet can be started from the .exe installed to the MINGW64
bin folder, likely C:\msys64\mingw64\bin\roadmeet.exe. Mosquitto
will need to be launched for telegraph connections to function.