Nikita Karetnikov <nik...@karetnikov.org> writes: >> Some software (rightly or wrongly) tries to build with "lex" and "yacc" . >> Guix does not provide these. >> Instead we have "flex" and "bison". Most operating systems have symbolic >> links lex -> flex and yacc -> bison. >> Shouldn't we provide these too? > > I guess this should solve the problem (untested): > > (inputs > `(("lex" ,flex) > ("yacc" ,bison) > ...))
No, this wouldn't work. Those strings ("lex" and "yacc" above) do not become commands on the filesystem, so they won't be visible to a build system that's looking for lex or yacc. They are merely used within the derivation to refer to the inputs. Implementing John's suggestion would involve installing symbolic links in /nix/store/*-flex-* and /nix/store/*-bison-* in the flex and bison recipes, which I guess means adding a new phase to those recipes. Mark