tweag / opam-nix

Turn opam-based OCaml projects into Nix derivations
MIT License
111 stars 33 forks source link

Multi-package template fails to install opam package `bogue` #54

Closed cwfryer closed 1 year ago

cwfryer commented 1 year ago

Describe the bug The bogue package fails to build with the following error:

error: builder for '/nix/store/7mwqar1ajgybsl9wdkjx763ibavg0kzf-conf-sdl2-image-1.drv' failed with exit code 1;
       last 7 log lines:
       > unpacking sources
       > unpacking source archive /nix/store/4d0ix5djms3n2jnjdc58l916cwack1rp-empty-directory
       > source root is empty-directory
       > patching sources
       > configuring
       > patching script interpreter paths in .
       > building
       For full logs, run 'nix log /nix/store/7mwqar1ajgybsl9wdkjx763ibavg0kzf-conf-sdl2-image-1.drv'.
error: 1 dependencies of derivation '/nix/store/z9hgyzcgv53y8cav7dqanwpsp9x58aca-tsdl-image-0.5.drv' failed to build
error: 1 dependencies of derivation '/nix/store/h5fw4ps8ws5hgvrm9pyjp1dgldfymcph-bogue-20221112.drv' failed to build

To Reproduce The simplest way to reproduce is nix shell github:tweag/opam-nix#bogue.latest.

Personally, I am trying to build a devShell using the below flake, with direnv use flake.

Click to show flake ```nix { description = "A Nix-flake-based OCaml development environment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; opam-nix.url = "github:tweag/opam-nix"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, opam-nix, nixpkgs, flake-utils, } @ inputs: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; on = opam-nix.lib.${system}; localPackagesQuery = builtins.mapAttrs (_: pkgs.lib.last) (on.listRepo (on.makeOpamRepo ./.)); devPackagesQuery = { "bogue" = "*"; "core" = "*"; "utop" = "*"; }; query = devPackagesQuery // {}; scope = on.buildOpamProject' {} ./. query; overlay = final: prev: {}; scope' = scope.overrideScope' overlay; devPackages = builtins.attrValues (pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope'); packages = pkgs.lib.getAttrs (builtins.attrNames localPackagesQuery) scope'; in { legacyPackages = scope'; inherit packages; devShells.default = pkgs.mkShell { inputsFrom = builtins.attrValues packages; buildInputs = devPackages ++ (with pkgs; [SDL_image]); }; }); } ```

Expected behavior A correctly produced dev shell with the bogue package.

Environment

Additional context Opam Repository Link for conf-sdl2-image Source code for tsdl-image Source code for bogue

balsoft commented 1 year ago

Hi! nix shell github:tweag/opam-nix#bogue.latest succeeds now (note that the resulting executable will not work). If you need help with getting it working, please open another issue.