should be automatically installed.
Since many people prefer to use an actually released version of Debian,
-in October 2020 Bdale worked through the steps required to take a
-clean install of Debian 10 (buster) and get to a working build. Here's that
-recipe, as sent to a customer who asked how to do it:
+in October 2024 Bdale worked through the steps required to take a
+clean install of Debian 12 (bookworm) and get to a working build. Here's
+the resulting recipe:
<pre>
- I actually had to install a fresh buster instance in a VM so that I
- could chase this down. And then there was an "of course!" moment.
+ I installed a fresh Debian 12 (bookworm) minimal instance in a VM.
- The complication is based on the fact that Keith and I both run Debian
- 'unstable', aka 'sid', all the time since we're Debian developers. And
- it turns out that to build our master branch, you need an ARM cross tool
- chain that's just newer than what's in buster. Fortunately, that can be
- installed without perturbing the rest of the system much.
+ # make sure we're on latest bookworm bits
+ apt update && apt upgrade && apt autoremove
- I took serious notes on how to go from nothing to a working build on
- buster, here's the recipe:
-
- # make sure we're on latest buster
- apt update && apt upgrade
-
- # set up build dependencies, etc .. the json lib is a new build dep
- # since buster, so install it manually as 'apt build-dep' won't
- apt install build-essential git libjson-c-dev
+ # set up build dependencies, etc. Note that libssl-dev and sox
+ # are new build-deps added since the altos version released with
+ # debian bookwork, so won't be pulled in by 'build-dep'
+ apt install build-essential git libssl-dev sox
apt build-dep altos
- # move from newlib to picolibc, requires updating cross compiler too
- dpkg --purge libnewlib-nano-arm-none-eabi
-
- - to get latest ARM cross toolchain, temporarily add to
- /etc/apt/sources.list a line like:
-
- deb http://deb.debian.org/debian/ sid main
-
- apt update
-
- # this pulls in the latest compiler, runtime library, and dependencies
- # like gcc-10-base and two related libraries
- apt install gcc-arm-none-eabi picolibc-arm-none-eabi
-
- - probably safest to now comment out the sid line in sources.list, and
- make sure the packaging system forgets about sid for now with
- apt update
-
git clone git://git.gag.com/fw/altos
cd altos
git checkout master
./autogen.sh
make
- That happily ran to completion for me.
-
- Hope this helps!
+ # That ran to successful build completion for me.
</pre>
The notes we use to do a complete build for release are in the file
to be kept up to date better than this one, feel free to check there for
hints on things that might have changed, and/or feel free to reach out to
us for help if you get stuck.
-
-If you really want to try and build our source tree on a development platform
-other than Debian, feel free... just don't expect us to help! It's hard
-enough keeping everything working on one development platform...
-