commit 05869fccfa45a0ff888856266a66e956647a61fe Author: Nicolas Hiillos Date: Tue Aug 22 11:16:45 2023 +0300 Partially working build diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..945e0f4 --- /dev/null +++ b/flake.lock @@ -0,0 +1,177 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "linuxcnc-src": { + "flake": false, + "locked": { + "lastModified": 1692346631, + "narHash": "sha256-l31muszF6SVPXB+VboIBNyBbnKJfYvfZoSuMhNDFhB8=", + "owner": "LinuxCNC", + "repo": "linuxcnc", + "rev": "5f0bf8595795e4a143f13d4ff2f020f3a6804b33", + "type": "github" + }, + "original": { + "owner": "LinuxCNC", + "repo": "linuxcnc", + "type": "github" + } + }, + "mach-nix": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs", + "pypi-deps-db": "pypi-deps-db" + }, + "locked": { + "lastModified": 1689108475, + "narHash": "sha256-Tg8mLKfgIigFSA6IodqSaxjfYVZ0xELqUDtGJhsdN6g=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "725aab8d52eb2f5b8ff67bea61049011ef31597c", + "type": "github" + }, + "original": { + "id": "mach-nix", + "type": "indirect" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1643805626, + "narHash": "sha256-AXLDVMG+UaAGsGSpOtQHPIKB+IZ0KSd9WS77aanGzgc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "554d2d8aa25b6e583575459c297ec23750adb6cb", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1692207601, + "narHash": "sha256-tfPGNKQcJT1cvT6ufqO/7ydYNL6mcJClvzbrzhKjB80=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b30c68669df77d981ce4aefd6b9d378563f6fc4e", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-23.05", + "type": "indirect" + } + }, + "pangocffi-src": { + "flake": false, + "locked": { + "lastModified": 1665223780, + "narHash": "sha256-0pvKH+zxctqzJb0rqFxQtBxMjnCrk+jLkvNrfS1cNJU=", + "owner": "leifgehrmann", + "repo": "pangocffi", + "rev": "c4fa079192c21cb87e87fe8512e172657aa51af6", + "type": "github" + }, + "original": { + "owner": "leifgehrmann", + "repo": "pangocffi", + "type": "github" + } + }, + "pypi-deps-db": { + "flake": false, + "locked": { + "lastModified": 1685526402, + "narHash": "sha256-V0SXx0dWlUBL3E/wHWTszrkK2dOnuYYnBc7n6e0+NQU=", + "owner": "DavHau", + "repo": "pypi-deps-db", + "rev": "ba35683c35218acb5258b69a9916994979dc73a9", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "pypi-deps-db", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "linuxcnc-src": "linuxcnc-src", + "mach-nix": "mach-nix", + "nixpkgs": "nixpkgs_2", + "pangocffi-src": "pangocffi-src", + "yapps-src": "yapps-src" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "yapps-src": { + "flake": false, + "locked": { + "lastModified": 1539601080, + "narHash": "sha256-XDUWuiw6AiUWWHqwSmuU6TfDbK/WRZfBfYgOryBClgI=", + "owner": "smurfix", + "repo": "yapps", + "rev": "67541062093846bb53f011da0f4d489d63375d2d", + "type": "github" + }, + "original": { + "owner": "smurfix", + "repo": "yapps", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..bd9b85b --- /dev/null +++ b/flake.nix @@ -0,0 +1,159 @@ +{ + inputs = { + nixpkgs.url = "nixpkgs/nixos-23.05"; + flake-utils.url = "github:numtide/flake-utils"; + linuxcnc-src = { + #url = "github:LinuxCNC/linuxcnc?ref=v2.8.4"; #requires python2 + url = "github:LinuxCNC/linuxcnc"; + flake = false; + }; + + yapps-src = { + url = "github:smurfix/yapps"; + flake = false; + }; + pangocffi-src = { + url = "github:leifgehrmann/pangocffi"; + flake = false; + }; + }; + outputs = { self, nixpkgs, flake-utils, linuxcnc-src, mach-nix, yapps-src, pangocffi-src, ... }: + flake-utils.lib.eachSystem [ + "x86_64-linux" "i686-linux" "aarch64-linux" + ] (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + yapps = pkgs.python3Packages.buildPythonApplication { + pname = "yapps"; + version = "1.0"; + #propagatedBuildInputs = [ flask ]; + src = yapps-src; + }; + pangocffi = pkgs.python3Packages.buildPythonApplication { + pname = "pangocffi"; + version = "1.0"; + + nativeBuildInputs = [ + pkgs.pkg-config + pkgs.libffi + pkgs.pango.dev + pkgs.glib + pkgs.python3Packages.setuptools + ]; + propagatedBuildInputs = with pkgs.python3Packages; [ + cffi + pytest + setuptools + + flake8 + pytest + coverage + sphinx + sphinx_rtd_theme + tox + twine + ]; + src = pangocffi-src; + + setuptoolsCheckPhase = '' + echo "SKIPPING setuptoolsCheckPhase" + ''; + }; + #boostPython = pkgs.boost174.override { python = pkgs.python3; enablePython = true; }; + boostPython = pkgs.boost174.override { enablePython = true; }; + linuxcnc = pkgs.stdenv.mkDerivation { + + # https://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html + name = "linuxcnc"; + + src = linuxcnc-src; + + enableParallelBuilding = true; + + #preConfigure = '' + # cd src + # #./autogen.sh + #''; + preAutoreconf = '' + cd src + ''; + + configureFlags = [ + "--with-realtime=uspace" + "--enable-non-distributable=yes" + "--with-tclConfig=${pkgs.tcl}/lib/tclConfig.sh" + "--with-tkConfig=${pkgs.tk}/lib/tkConfig.sh" + #"--with-boost-python=${boostPython.dev}/include/boost/" + #"PYTHON_LDFLAGS=-L${pkgs.python39Packages.python}/lib" + ]; + + nativeBuildInputs = with pkgs; [ + autoreconfHook + pkg-config + #wrapGAppsHook + gobject-introspection + ]; + #nativeBuildInputs = [ pkgs.pkg-config ]; + buildInputs = with pkgs; [ + libtirpc + udev + libmodbus + libusb + glib + gtk3.dev + gtk2.dev + psmisc + + yapps + + intltool + + boostPython + boostPython.dev + #python3Packages.boost + #python3Packages.boost.dev + #python3Packages.eigenpy + #pkgs.python39Packages.python + + tcl + tclx + tk.dev + tkimg + bwidget + + python3Packages.pygobject3 + + readline.dev + + python3Packages.tkinter + + libGLU + + xorg.libXmu.dev + ps + sysvtools + util-linux + + #tclreadline + #pkgs.python3Packages.pygobject3.dev + #pkgs.python3Packages.gst-python + #pangocffi + #pkgs.pango.dev + + #pkgs.python3Packages.pyxdg + #pkgs.python3Packages.xcffib + #pkgs.python3Packages.cairocffi + #pkgs.python3Packages.manimpango + + ]; + + }; + + in + { + #packages.default = pkgs.tk; + packages.default = linuxcnc; + packages.linuxcnc = linuxcnc; + } + ); +}