building git 2.41 on linux mint 21.2

tl;dr — A problem I encountered building from source and then executing git, and how I solved it.

I am not afraid to download the source for a tool and to build a local copy on my Linux Mint system. I never had that fear, having learned to download and build GNU applications and tools back in the day when Unix ruled the earth. We’re talking decades ago. I’m also to the point that while I’ll run Linux Mint as my foundational operating system, I prefer to run the latest packages because those available in the Linux Mint repos are locked back in time to the Ubuntu 22.04 release cycle. Software advances quickly and 16 months is a log time. It’s even longer if you realize that Ubuntu 22.04 is based pretty heavily on Ubuntu 21.10, which makes the time differential even longer. Thus, when I want to run the latest tools I’ll first turn to flatpak or appimage versions. If that fails I’ll download the sources and build it myself.

I prefer my critical build tools to be fully up-to-date compared to what Linux Mint provides. The latest versions of those tools usually incorporate fixes and new features not available in the older distribution-provided versions. The version of git provided by Linux Mint 21.2 is 2.31.1. The latest git release version on the git website is 2.41.0. I checked to see if there was a flatpak version of git (there wasn’t) then proceeded to download the source and build it.

Git source requires you build it within the source directory itself, which I normally don’t like to do. I prefer to create a parallel build directory then configure and build within the build directory. It keeps the source directory clean and allows me to simply delete the build directory if I want to rebuild everything. Regardless, I ran configure and then make, and everything seemed to build. I installed in a non-root location (in my home folder under ~/tools/git). I set my path to point to my built version, and then set about testing it. I quickly ran into the following error message;

git: 'remote-https' is not a git command. See 'git --help'.

A little bit of search showed that I was missing an installation of libcurl. So I executed the following;

sudo apt install libcurl4-openssl-dev

Once libcurl was installed I deleted the git source directory, unpacked it again, re-configured, rebuilt and re-installed. When I used it after the second build it performed correctly. So far everything works as advertised.

Here’s a link to the source tarballs: https://mirrors.edge.kernel.org/pub/software/scm/git/

software problems

I’ve been dealing with a number of software problems this week on iOS and Linux Mint, all of them triggered by software updates.

iOS Update to 16.6

Apple pushed out the iOS 16.6 update to all devices. No new features, but a number of unspecified security fixes were in the update. I can only speculate how serious these security fixes were. I hadn’t intended to update install 16.6 and intended to wait for iOS 17. But it got shoved on me anyway. I went on ahead and allowed the update to proceed. After installation my iPhone rebooted. I logged in and was on the home screen when a dialog popped up telling me the update was successful, and the dialog had a big OK button across the button. So I tapped it to dismiss it. Nothing. Tap. Nothing. Tap tap tap. Nothing nothing nothing. I was effectively locked out of my phone. I had to go to a local pharmacy to pick up a prescription for my wife, so I plugged my iPhone into my car and it automatically connected via CarPlay. From my car’s touch screen I was able to use my iPhone, even calling my wife and talking to her as I drove to the pharmacy. When I got home I tried to find a solution on the web. I discovered similar problems with solutions that wouldn’t work, especially when the solution was to download and install some special program on my MacBook. So I performed a hard reset on my iPhone. That forces the iPhone off. When the iPhone powered back on the dialog was gone.

Linux Mint Updates and Vivaldi

For the past few weeks I’ve been using Brave and Firefox instead of Vivaldi. But I needed to bring up Vivaldi because it remembered my login into a test account I’d created on Microsoft’s Azure. I’d been experimenting with integrating the “cloud” with some Espressif ESP32-S3 development boards. The integration worked, but for what I wanted it was overkill, so I let the temporary account expire after 30 days. Today I got an email about a change to Microsoft’s Azure Customer Agreement, and a comment about the account. I thought it was dead, but I decided to see if I could log in and make sure it was totally killed. I don’t want an Azure account, I can assure you. However, when I opened Vivaldi it was totally blank. The only thing that showed was the background I’d selected. I tried to figure out what was wrong, to no avail. In a desperate attempt to find a solution I ran apt’s update and upgrade, only to discover that there was an update to libldap that was being “held back.” I can’t tell you how many time’s I’ve come across this with Debian-based distributions. In order to clear this up I had to run sudo aptitude safe-upgrade -y and let it install that one update. When it finished installing I restarted Vivaldi and Vivaldi worked normally. Totally normal. I have no idea if the current version of Vivaldi was having a problem with the older version of libldap, but it’s these kind of annoyances that make me wonder if I should just abandon the entire Debian side of Linux distributions for something else.

But then I remind myself that a bad day with Linux is better than a good day with Windows.