meson build system, dependencies

meson is Yet Another Build System (YABS). One of it’s aims is to be easier to use than the other YABS. Maybe it is maybe it isn’t.

Here is my context: Fedora 34 and I like to pretend I am a programmer. I can make thing happen in Python, but then Python is easy. But I have a project which I want to work quickly and Python is a scripting langauge and I want to pretend I am a programmer so no C# or Python or anything easy.

I have been using Clion (I had a JetBrains subscription for a couple of years but I’m not a developer so I could not justify spending money on a subscription. So I have a fallback version from 2017. I like the debugging support in Clion, like being able to open objects in memory using a mouse when the program is paused.

Now I want to add a GTK UI for my program as I want to be able to interact with a graph to inform a big block of data to work in the program. For some reason (to do with CMAKE, a YABS, probably) it won’t compile a GTK program. My least favourite programming task is chasing around dependencies and interacting with YABS and I never learnt CMAKE enough to make it muscle memory, or something that’s integrated into my mind. It’s currently something I’ll always have to look up (because I’m not a programmer).

GTK (a widget tool-kit kind of thing) is also something I don’t know how to use so I thought I’d mock something up in Gnome-Builder. and then integrate it into the program I’m writing later by which time CMAKE will have magically come into focus. Default Gnome-Builder can indeed use complex templates to build Hello World programs (which it then insists on making into a Flatpak) and have loads of “hey look this is how you should write this code” templates, but I want something very simple.

So making a new Command Line program. Then install GTK4 (probably a mistake because it’s new [October 2021]).

Then in meson.build in the folder add

gtk_dependency = dependency(‘gtk4’)

add this to the Deps square brackets

deps = [
gtk_dependency
]

Wait how did you know to use dependency(‘gtk4’)? use pkgconf –list-all | grep gtk to show you all the packages you can use as dependecies (that have gtk in them).

Gnome Tracker-Miner

I was having problems with tracker miner beavering away for 1/4 of an hour every time I booted up. Had a look at the journalctl output etc and noticed errors around the database.

So I Duck Duck Go-ed some stuff and eventually found:

tracker reset --hard

Once I ran that and rebooted, it ran again for a bit then settled down again. Problem solved.

PyCharm

Run selected code:

search for Execute Selection in Python Console, to find and/or change your keyboard combination.

kdevelop: you need GDB 7 or greater… Fedora 33 … use LLDB instead (oh no that’s busted too).

You need gdb 7.0.0 or higher.
You are using: GNU gdb (GDB) Fedora 10.1-2.fc33

I was using Kdevelop under Gnome on Fedora 33 and wanted to debug a program. Unfortunately the above error pops up telling me it won’t work I need GDB version > 7 but all I have is GDB version 10, and any fool knows 10 < 7 so what’s a guy to do?

So I thought I’d try LLDB instead (Run -> Launch Configurations -> Debug) but that gave an error of can’t find lldb-mi. So more ducking (DDG) later I found a bug report from Arch (if only I was linux enough for Arch) that stated that LLDB-mi no longer comes with LLDB install and you had to build it from source.

So I:

sudo dnf install lldb-devel llvm-devel 

then downloaded the repo from https://github.com/lldb-tools/lldb-mi

cd Projects/github/
git clone https://github.com/lldb-tools/lldb-mi
cd lldb-mi
cmake .
make
sudo make install

…and LLDB debugging in Kdevelop works fine now.

Not sure what’s up with GDB but I’m sure it’ll be sorted at a later date. It was after an update that it started falling over.

Compile Super Collider on Fedora 32 or 33 Workstation (Gnome)

Download the source code from https://supercollider.github.io/

Install some requirements:

sudo dnf install avahi-devel emacs emacs-devel libXt-devel libudev-devel libsndfile-devel jack-audio-connection-kit-devel qt5-qtwebengine-devel

I was getting errors like

CMake Error at /usr/lib64/cmake/Qt5/Qt5Config.cmake:28 (find_package):
Could not find a package configuration file provided by "Qt5Svg" with any
of the following names:

Qt5SvgConfig.cmake
qt5svg-config.cmake
But once I ran:
sudo dnf install qt5-qtsvg-devel qt5-qtwebsockets-devel

…everything worked OK:

cmake .
make
sudo make install

and run

scide

Standard Horizon HX890E

Just bought a VHF radio with GPS logging (see title). I had assumed that when you connected a computer to it as a USB device it would be just like a thumb drive. Unfortunately that wasn’t the case.
You can download some special software for PC download (sic) but that doesn’t include Mac or the mighty Linux. So some DDGing later brought me to https://github.com/cr/hx870 which uses python to access it.
It was easy to set up a virtual environment for python 3.6 and use pip to install from the github repo.
You can make sure it is connected to USB, using… lsusb it should show an entry for a device called Yaesu Musen HX890

Then:

  • Start the radio up in a special mode, hold down Menu/Set while powering on.
  • Make the device readable sudo chmod 666 /dev/ttyACM1
  • Then use:
    hxtool gpslog -g yourfilenamehere.gpx or (-j for geojson format)
    …to transfer you GPS log from the device to your PC.

    Once you have the file safely on your hard drive you can open it using something like QGIS with the GPS tools installed (GQIS -> Plugins -> Manage and install plugins -> (search for GPS) -> GPS Tools (tick it)
    Then Vector -> GPS Tools -> [Load GPX File]

    By the way to access the setup menu (just in case you haven’t read the manual) hold down the menu/set button for a second or two instead of just tapping it. You clear the log by using the GPS settings menu.

    KDE and onwards to a better world

    Having given up on people telling me what I don’t want (GNOME). KDE is now the GUI of choice.
    An install of fedora KDE spin and here are my initial installs:

    dnf install fedora-workstation-repositories
    dnf config-manager --set-enabled rpmfusion-nonfree-nvidia-driver
    dnf install akmod-nvidia
    
    dnf groupinstall "Development Tools"
    dnf install openssl-devel libxml2-devel libcurl-devel ccache
    dnf install SDL SDL2 SDL-devel SDL2-devel SDL_gfx SDL_gfx-devel 
    dnf install SFML SFML-devel freeglut-devel glew-devel glew glade glfw glfw-devel glm-devel 
    
    dnf install xscreensaver kate filezilla encfs clang clang-devel cmake steam gtk3-devel R-devel p7zip blas blas-devel R-core python3.6 baobab gnome-disk-utility
    dnf install powerline powerline-fonts mc htop f23-backgrounds-extras-kde f24-backgrounds-extras-kde f25-backgrounds-extras-kde f26-backgrounds-extras-kde f27-backgrounds-extras-kde f28-backgrounds-extras-kde f29-backgrounds-extras-kde f30-backgrounds-extras-kde f31-backgrounds-extras-kde f32-backgrounds-extras-kde jupyter-notebook gitg monodevelop inkscape gimp blender spacenavd krita dia scribus kdevelop seahorse nextcloud-client calibre evolution gource kdenlive lollypop
    
    dnf copr enable dani/qgis
    dnf install qgis python3-qgis qgis-gras
    
    dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
    dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    dnf install vlc
    
    

    Don’t forget you’ll also want to install RStudio,etc. and make the adjustments to your .bashrc file for the powerline to work.
    …and you know what did it for me? Desktop backgrounds.

    And the downside is that I’ll now spend about 2 hours adjusting settings to get my look absolutely right 🙂