nmap was updated from 7.93 -> 7.94 in
<https://github.com/NixOS/nixpkgs/pull/238960>
as part of that update, upstream migrated from lua5.3 to lua5.4, see:
<7d57e7d6b1>
nmap's configure script falls back to its vendored liblua if it can't
find the expected lua version (silently). that means we lost all
nix-specific lua patches that make things like cross compilation work.
this patch brings the lua versions back in line to fix that regression.
The upstream PR had two parts: adding a missing include and resolving
an ambiguous reference. The upstream project fixed the first but not
the second. We still need the second part, so extract it by filtering
the patch.
This reverts commit 278d3050ae because it
breaks zenmap:
$ zenmap
Could not import the zenmapGUI.App module: 'No module named zenmapGUI.App'.
I checked in these directories:
/nix/store/2hiz11plgjdrk2mziwc2jcxqalqh9hii-nmap-graphical-7.12/bin
/home/bfo/forks/nixpkgs
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python27.zip
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python2.7
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python2.7/plat-linux2
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python2.7/lib-tk
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python2.7/lib-old
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python2.7/lib-dynload
/nix/store/0l4lriqf07qah8c0kh9kcyc8l5iyij16-python-2.7.12/lib/python2.7/site-packages
If you installed Zenmap in another directory, you may have to add the
modules directory to the PYTHONPATH environment variable.
Python 3 is not supported, so use python2Packages.
Python is only required for the `ndiff` and `zenmap` binaries, not the
main `nmap` binary, so disable Python by default to reduce the default
closure size, and add a `withPython` arg to re-enable it. Note that
Zenmap is the graphical program, so passing `graphicalSupport = true`
will also automatically enable Python support.
Zenamp wrapper confuses python so it thinks that zenmap is launched as a script
and not as an executable. This leads to incorrect /share path and missing
templates. ./zenmap.patch cures that (a bit hacky as usual).