Failed to install firmware dependencies for Pocket Reform

I’ve been trying to modify the Pocket Reform keyboard firmware to turn one of the Space keys into a Compose key, but I’m stuck at trying to get the dependencies to install. Here’s the output from running ./install-fw-dependencies.sh:

+ set -- build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck
+ '[' '' = true ']'
+ set -- build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck tio picotool
+ set -- apt-get --update --no-install-recommends -y install build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck tio picotool
+ '[' 1000 '!=' 0 ']'
+ set -- sudo apt-get --update --no-install-recommends -y install build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck tio picotool
+ echo 'Running sudo' apt-get --update --no-install-recommends -y install build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck tio picotool
Running sudo apt-get --update --no-install-recommends -y install build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck tio picotool
+ sudo apt-get --update --no-install-recommends -y install build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib libusb-1.0-0-dev cmake python3 gcab cppcheck tio picotool
Hit:1 http://deb.debian.org/debian unstable InRelease
Hit:2 http://download.opensuse.org/repositories/shells:/fish:/release:/4/Debian_Unstable  InRelease
Get:3 https://apt.syncthing.net syncthing InRelease [24.2 kB]
Ign:4 https://mntre.com/reform-debian-repo reform InRelease
Hit:5 https://mntre.com/reform-debian-repo reform Release
Ign:6 https://mntre.com/reform-debian-repo reform Release.gpg
Fetched 24.2 kB in 0s (65.7 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
picotool is already the newest version (2.2.0-a4+dfsg-3).
Solving dependencies... Error!
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 build-essential : Depends: g++ (>= 4:14.2) but it is not going to be installed
 cmake : Depends: cmake-data (= 4.2.3-1) but it is not going to be installed
         Depends: librhash1 (>= 1.2.6) but it is not going to be installed
 cppcheck : Depends: libtinyxml2-11 (>= 11.0.0) but it is not going to be installed
            Depends: python3-pygments but it is not going to be installed
 gcab : Depends: libgcab-1.0-0 (>= 1.4) but it is not going to be installed
 gcc-arm-none-eabi : Depends: binutils-arm-none-eabi but it is not going to be installed
 libnewlib-arm-none-eabi : Depends: libnewlib-dev (= 4.5.0.20241231-1) but it is not going to be installed
 libstdc++-arm-none-eabi-newlib : Depends: libnewlib-dev but it is not going to be installed
                                  Depends: libstdc++-arm-none-eabi-dev (= 15:14.2.rel1-1+29) but it is not going to be installed
                                  Depends: gcc-arm-none-eabi (= 15:14.2.rel1-1) but 15:14.2.rel1-1+b1 is to be installed
 libusb-1.0-0-dev : Depends: libusb-1.0-0 (= 2:1.0.29-2+b1) but 2:1.0.29-2 is to be installed
 python3 : PreDepends: python3-minimal (= 3.13.9-3) but 3.13.9-2 is to be installed
           Depends: libpython3-stdlib (= 3.13.9-3) but 3.13.9-2 is to be installed
N: Missing Signed-By in the sources.list(5) entry for 'https://mntre.com/reform-debian-repo'
N: Missing Signed-By in the sources.list(5) entry for 'http://download.opensuse.org/repositories/shells:/fish:/release:/4/Debian_Unstable'
E: Unable to satisfy dependencies. Reached two conflicting decisions:
   1. libstdc++-arm-none-eabi-newlib:arm64=15:14.2.rel1-1+29 is selected for install
   2. libstdc++-arm-none-eabi-newlib:arm64 Depends gcc-arm-none-eabi (= 15:14.2.rel1-1)
      but none of the choices are installable:
      [no choices]

I was planning to raise this as an issue on Gitlab, but I don’t know if you want external people in there ­– feel free to reject my request for a use account over there.

Hello @waffle welcome to the forum!

Your problem is a current uninstallability of libstdc+±arm-none-eabi-dev in Debian unstable:

This is normal for Debian unstable (hence the name). The problem you see has already been reported in the Debian bugtracker:

The maintainer will probably take care of this soon.

If you cannot wait that long you could build inside a chroot or use the packages from Debian testing.

1 Like

Oh, so that’s why they call it unstable. Thanks, this explains it.

I’m new to the adventure that is Linux package management (if you couldn’t tell by the question) so I didn’t really know where to begin with this. What’s a good place to start tracking down this kind of issue? My usual approach of googling the error message didn’t get me very far.