{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    flake-parts.url = "github:hercules-ci/flake-parts";
  };

  outputs = inputs@{ flake-parts, ... }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      systems = [ "x86_64-linux" ];
      perSystem = { config, system, ... }:
        let
          pkgs = inputs.nixpkgs.legacyPackages.${system};
          python3 = pkgs.python310;
          python3Packages = pkgs.python310Packages;
        in rec {
          devShells.default = pkgs.mkShell rec {
            packages = with pkgs; [
              rocm-runtime
              pciutils

              git
              python3
              python3Packages.virtualenv
              stdenv.cc.cc.lib
              stdenv.cc
              ncurses5
              binutils
              gitRepo gnupg autoconf curl
              procps gnumake util-linux m4 gperf unzip
              libGLU libGL
              glib
            ];
            LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath packages;
          };
        };
    };
}