Skip to content

Instantly share code, notes, and snippets.

@Sorixelle
Last active July 22, 2025 09:40
Show Gist options
  • Save Sorixelle/96d52df85b65a2d306a90493c6d47c44 to your computer and use it in GitHub Desktop.
Save Sorixelle/96d52df85b65a2d306a90493c6d47c44 to your computer and use it in GitHub Desktop.
let
pkgs = import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/fa64ec5c1ca6f17746f3defedb988b9248e97616.tar.gz";
}) {};
mkShell = pkgs.mkShell.override {
stdenv = pkgs.multiStdenv;
};
openocd-pebble = pkgs.openocd.overrideAttrs (prev: {
version = "0.12.0+pebble_dev";
src = pkgs.fetchFromGitHub {
owner = "pebble-dev";
repo = "openocd";
rev = "66d2993367694b6beca71f3dfd2b0c62d83db125";
hash = "sha256-twNIwcTjnqnPma9C/SLPHjdrcLPyv3dNL5SDmuTnFdY=";
fetchSubmodules = true;
};
nativeBuildInputs = prev.nativeBuildInputs ++ (with pkgs; [
autoconf
automake
libtool
which
]);
preConfigure = ''
SKIP_SUBMODULE=1 ./bootstrap
'';
});
in
mkShell {
name = "pebble-firmware-devshell";
packages = with pkgs; [
clang_multi
cscope
doxygen
emscripten
gcc-arm-embedded
gettext
graphviz
nodejs
openocd-pebble
python3
uv
];
# Don't apply any hardening flags to builds
hardeningDisable = [ "all" ];
# Must build this from source, since it contains native binaries
env.UV_NO_BINARY_PACKAGE = "grpcio-tools";
shellHook = ''
# Unset compiler environment variables set by stdenv so waf builds don't accidentially pick up the wrong compilers
unset AR AS CC CXX LD NM
'';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment