* //3p/sources: temporarily switch to nixos-unstable-small, since it
  includes:
  - evans update we are interested in, allowing us to drop our evans
    patches.
  - awscli2 update that unbreaks //users/grfn
* //3p/overlays/tvl:
  - drop evans patches
  - update tdlib to 1.8.11 to make tazjin's emacs happy
  - drop obsolete mullvad workaround
* //users/grfn/keyboard: disable -Werror for array-bounds warnings.
  Seems like a non-trivial job to resolve the warning properly,
  hopefully GCC 12 still generates the same working code as GCC 11 used
  to.
* //users/grfn/system/home: remove yubikey-manager-qt.
  Yubico can't seem to keep that on pace with yubikey-manager. It
  requires a <5 version of the latter which is incompatible with the
  recently released cryptography >= 39.
* //3p/gerrit: update changed FOD hash for the fetch step
Change-Id: I590ab996247e69b0ab5059cd173840ef4ebfe939
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8133
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
		
	
			
		
			
				
	
	
		
			73 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ pkgs, ... }:
 | 
						||
 | 
						||
with pkgs;
 | 
						||
 | 
						||
let avrlibc = pkgsCross.avr.libcCross; in
 | 
						||
 | 
						||
rec {
 | 
						||
  qmkSource = fetchgit {
 | 
						||
    url = "https://github.com/qmk/qmk_firmware";
 | 
						||
    rev = "ab1650606c36f85018257aba65d9c3ff8ec42e71";
 | 
						||
    sha256 = "1k59flkvhjzmfl0yz9z37lqhvad7m9r5wy1p1sjk5274rsmylh79";
 | 
						||
    fetchSubmodules = true;
 | 
						||
  };
 | 
						||
 | 
						||
  layout = stdenv.mkDerivation rec {
 | 
						||
    name = "ergodox_ez_grfn.hex";
 | 
						||
 | 
						||
    src = qmkSource;
 | 
						||
 | 
						||
    buildInputs = [
 | 
						||
      dfu-programmer
 | 
						||
      dfu-util
 | 
						||
      diffutils
 | 
						||
      git
 | 
						||
      python3
 | 
						||
      pkgsCross.avr.buildPackages.binutils
 | 
						||
      pkgsCross.avr.buildPackages.gcc
 | 
						||
      avrlibc
 | 
						||
      avrdude
 | 
						||
    ];
 | 
						||
 | 
						||
    AVR_CFLAGS = [
 | 
						||
      "-isystem ${avrlibc}/avr/include"
 | 
						||
      "-L${avrlibc}/avr/lib/avr5"
 | 
						||
      # GCC 12 has improved array-bounds warnings, failing the build of QMK.
 | 
						||
      # Newer versions of the firmware would work probably, but they heavily
 | 
						||
      # altered the build system, so it is non-trivial. Backporting the patch
 | 
						||
      # that fixes it seems difficult – the next change to the offending matrix.c
 | 
						||
      # after the pinned qmkSource commit is
 | 
						||
      # https://github.com/qmk/qmk_firmware/commit/11c308d436180974b7719ce78cdffdd83a1302c0
 | 
						||
      # which heavily changes the way the code works.
 | 
						||
      #
 | 
						||
      # TODO(grfn): address this properly
 | 
						||
      "-Wno-error=array-bounds"
 | 
						||
    ];
 | 
						||
 | 
						||
    AVR_ASFLAGS = AVR_CFLAGS;
 | 
						||
 | 
						||
    patches = [ ./increase-tapping-delay.patch ];
 | 
						||
 | 
						||
    postPatch = ''
 | 
						||
      mkdir keyboards/ergodox_ez/keymaps/grfn
 | 
						||
      cp ${./keymap.c} keyboards/ergodox_ez/keymaps/grfn/keymap.c
 | 
						||
    '';
 | 
						||
 | 
						||
    buildPhase = ''
 | 
						||
      make ergodox_ez:grfn
 | 
						||
    '';
 | 
						||
 | 
						||
    installPhase = ''
 | 
						||
      cp ergodox_ez_grfn.hex $out
 | 
						||
    '';
 | 
						||
  };
 | 
						||
 | 
						||
  flash = writeShellScript "flash.sh" ''
 | 
						||
    ${teensy-loader-cli}/bin/teensy-loader-cli \
 | 
						||
      -v \
 | 
						||
      --mcu=atmega32u4 \
 | 
						||
      -w ${layout}
 | 
						||
  '';
 | 
						||
 | 
						||
  meta.ci.targets = [ "layout" ];
 | 
						||
}
 |