diff --git a/artiq-fast/default.nix b/artiq-fast/default.nix index 6db93a8..e3dbc9e 100644 --- a/artiq-fast/default.nix +++ b/artiq-fast/default.nix @@ -22,10 +22,6 @@ let boardBinaries = boardBinaries; }; }) {} boards; - manualPackages = import ./pkgs/artiq-manual.nix { - inherit stdenv lib fetchgit git python3Packages texlive texinfo; - inherit (pythonDeps) sphinxcontrib-wavedrom; - }; mainPackages = rec { inherit (pythonDeps) asyncserial levenshtein pythonparser quamash pyqtgraph-qt5 misoc migen microscope jesd204b lit outputcheck wavedrom sphinxcontrib-wavedrom; binutils-or1k = callPackage ./pkgs/binutils-or1k.nix {}; @@ -41,7 +37,7 @@ let artiq-env = (pkgs.python3.withPackages(ps: [ artiq ])).overrideAttrs (oldAttrs: { name = "${pkgs.python3.name}-artiq-env-${artiq.version}"; }); openocd = callPackage ./pkgs/openocd.nix {}; conda-artiq = import ./conda-artiq.nix { inherit pkgs; }; - } // boardPackages // manualPackages; + } // boardPackages; extraPackages = import ./artiq-extras.nix { inherit pkgs; inherit (mainPackages) asyncserial artiq; }; in mainPackages // extraPackages diff --git a/artiq-fast/pkgs/python-deps.nix b/artiq-fast/pkgs/python-deps.nix index 599214f..97cbf46 100644 --- a/artiq-fast/pkgs/python-deps.nix +++ b/artiq-fast/pkgs/python-deps.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python, python3Packages }: +{ stdenv, fetchFromGitHub, python3Packages }: rec { # User dependencies @@ -199,46 +199,4 @@ rec { license = licenses.bsd3; }; }; - - - # Documentation building dependencies - wavedrom = python3Packages.buildPythonPackage rec { - pname = "wavedrom"; - version = "0.1"; - - src = python3Packages.fetchPypi { - inherit pname version; - sha256 = "006w683zlmmwcw5xz1n5dwg34ims5jg3gl2700ql4wr0myjz6710"; - }; - - buildInputs = [ python3Packages.setuptools_scm ]; - propagatedBuildInputs = with python3Packages; [ svgwrite attrdict ]; - doCheck = false; - - meta = with stdenv.lib; { - description = "WaveDrom compatible Python module and command line"; - homepage = "https://pypi.org/project/wavedrom/"; - license = licenses.mit; - }; - }; - - sphinxcontrib-wavedrom = python3Packages.buildPythonPackage rec { - pname = "sphinxcontrib-wavedrom"; - version = "2.0.0"; - - src = python3Packages.fetchPypi { - inherit pname version; - sha256 = "0nk36zqq5ipxqx9izz2iazb3iraasanv3nm05bjr21gw42zgkz22"; - }; - - buildInputs = [ python3Packages.setuptools_scm ]; - propagatedBuildInputs = [ wavedrom ] ++ (with python3Packages; [ sphinx xcffib cairosvg ]); - doCheck = false; - - meta = with stdenv.lib; { - description = "A Sphinx extension that allows including WaveDrom diagrams"; - homepage = "https://pypi.org/project/sphinxcontrib-wavedrom/"; - license = licenses.mit; - }; - }; } diff --git a/artiq-full.nix b/artiq-full.nix index d32ad9f..6cd1e82 100644 --- a/artiq-full.nix +++ b/artiq-full.nix @@ -107,6 +107,11 @@ let } EOF ''; + pythonDeps = import ./artiq-full/pythonDeps.nix { inherit pkgs; }; + manualPackages = import ./artiq-full/manual.nix { + inherit (pkgs) stdenv lib fetchgit git python3Packages texlive texinfo; + inherit (pythonDeps) sphinxcontrib-wavedrom; + }; jobs = builtins.mapAttrs (key: value: pkgs.lib.hydraJob value) (import generatedNix { inherit pkgs; }) // { # This is in the example in the ARTIQ manual - precompile it to speed up # installation for users. diff --git a/artiq-fast/pkgs/artiq-manual.nix b/artiq-full/manual.nix similarity index 86% rename from artiq-fast/pkgs/artiq-manual.nix rename to artiq-full/manual.nix index 0cb791b..6b8e20f 100644 --- a/artiq-fast/pkgs/artiq-manual.nix +++ b/artiq-full/manual.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchgit, git, python3Packages, texlive, texinfo, sphinxcontrib-wavedrom }: let - artiqVersion = import ./artiq-version.nix { inherit stdenv fetchgit git; }; + artiqVersion = import { inherit stdenv fetchgit git; }; isLatexPdfTarget = target: builtins.match "latexpdf.*" target != null; @@ -16,7 +16,7 @@ let name = "artiq-manual-${target}-${version}"; version = artiqVersion; - src = import ./artiq-src.nix { inherit fetchgit; }; + src = import { inherit fetchgit; }; buildInputs = [ python3Packages.sphinx python3Packages.sphinx_rtd_theme python3Packages.sphinx-argparse sphinxcontrib-wavedrom @@ -26,7 +26,7 @@ let preBuild = '' export VERSIONEER_OVERRIDE=${artiqVersion} - export SOURCE_DATE_EPOCH=${import ./artiq-timestamp.nix { inherit stdenv fetchgit git; }} + export SOURCE_DATE_EPOCH=${import { inherit stdenv fetchgit git; }} cd doc/manual ''; makeFlags = [ target ]; diff --git a/artiq-full/python-deps.nix b/artiq-full/python-deps.nix new file mode 100644 index 0000000..9ebdc4a --- /dev/null +++ b/artiq-full/python-deps.nix @@ -0,0 +1,43 @@ +{ pkgs }: + +rec { + wavedrom = pkgs.python3Packages.buildPythonPackage rec { + pname = "wavedrom"; + version = "0.1"; + + src = pkgs.python3Packages.fetchPypi { + inherit pname version; + sha256 = "006w683zlmmwcw5xz1n5dwg34ims5jg3gl2700ql4wr0myjz6710"; + }; + + buildInputs = [ pkgs.python3Packages.setuptools_scm ]; + propagatedBuildInputs = with pkgs.python3Packages; [ svgwrite attrdict ]; + doCheck = false; + + meta = with pkgs.stdenv.lib; { + description = "WaveDrom compatible Python module and command line"; + homepage = "https://pypi.org/project/wavedrom/"; + license = licenses.mit; + }; + }; + + sphinxcontrib-wavedrom = pkgs.python3Packages.buildPythonPackage rec { + pname = "sphinxcontrib-wavedrom"; + version = "2.0.0"; + + src = pkgs.python3Packages.fetchPypi { + inherit pname version; + sha256 = "0nk36zqq5ipxqx9izz2iazb3iraasanv3nm05bjr21gw42zgkz22"; + }; + + buildInputs = [ pkgs.python3Packages.setuptools_scm ]; + propagatedBuildInputs = [ wavedrom ] ++ (with pkgs.python3Packages; [ sphinx xcffib cairosvg ]); + doCheck = false; + + meta = with pkgs.stdenv.lib; { + description = "A Sphinx extension that allows including WaveDrom diagrams"; + homepage = "https://pypi.org/project/sphinxcontrib-wavedrom/"; + license = licenses.mit; + }; + }; +}