Issue when packaging AirSane

Hi all,

i wanted to package AirSane.
But the build failed with the following message:

nix-build --show-trace
this derivation will be built:
  /nix/store/yjag5vqwxdark3nymkpa5lnfffzpjkp0-airsane-v0.3.2.drv
these 6 paths will be fetched (9.24 MiB download, 37.70 MiB unpacked):
  /nix/store/bbcia12cv22icfa11i8q9q91rc48cjfq-patchelf-0.13
  /nix/store/cxfgrmc14hd8dji8dhbbzrbyrdkdai91-stdenv-linux
  /nix/store/h240v616x2b9j3sbsiw7m58df47q91vn-cmake-3.19.7
  /nix/store/ny73gmasqrrsx7nk71qnffgn2jh87kv5-rhash-1.4.1
  /nix/store/qirh7zw1qidj4f128nq3hj3hxv8svksr-gnumake-4.3
  /nix/store/xsqb95lgab77sryzcicamd7qpwz427r9-curl-7.76.1
copying path '/nix/store/xsqb95lgab77sryzcicamd7qpwz427r9-curl-7.76.1' from 'https://cache.nixos.org'...
copying path '/nix/store/qirh7zw1qidj4f128nq3hj3hxv8svksr-gnumake-4.3' from 'https://cache.nixos.org'...
copying path '/nix/store/bbcia12cv22icfa11i8q9q91rc48cjfq-patchelf-0.13' from 'https://cache.nixos.org'...
copying path '/nix/store/ny73gmasqrrsx7nk71qnffgn2jh87kv5-rhash-1.4.1' from 'https://cache.nixos.org'...
copying path '/nix/store/cxfgrmc14hd8dji8dhbbzrbyrdkdai91-stdenv-linux' from 'https://cache.nixos.org'...
copying path '/nix/store/h240v616x2b9j3sbsiw7m58df47q91vn-cmake-3.19.7' from 'https://cache.nixos.org'...
building '/nix/store/yjag5vqwxdark3nymkpa5lnfffzpjkp0-airsane-v0.3.2.drv'...
unpacking sources
unpacking source archive /nix/store/bxv4n4is4y1i4jyk3dc5h0xzrkxg1ddx-source
source root is source
patching sources
configuring
fixing cmake files...
cmake flags: -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LOCALEDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/locale -DCMAKE_INSTALL_LIBEXECDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/libexec -DCMAKE_INSTALL_LIBDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/lib -DCMAKE_INSTALL_DOCDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/doc/airsaned -DCMAKE_INSTALL_INFODIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/info -DCMAKE_INSTALL_MANDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/man -DCMAKE_INSTALL_OLDINCLUDEDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/include -DCMAKE_INSTALL_INCLUDEDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/include -DCMAKE_INSTALL_SBINDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/sbin -DCMAKE_INSTALL_BINDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/bin -DCMAKE_INSTALL_NAME_DIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/lib -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_OSX_SYSROOT= -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_STRIP=/nix/store/jp5synlw78ggp69rrdch6aknb4j3bxr7-binutils-2.35.1/bin/strip -DCMAKE_RANLIB=/nix/store/jp5synlw78ggp69rrdch6aknb4j3bxr7-binutils-2.35.1/bin/ranlib -DCMAKE_AR=/nix/store/jp5synlw78ggp69rrdch6aknb4j3bxr7-binutils-2.35.1/bin/ar -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_INSTALL_PREFIX=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2  
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/f9592ghi61h9q590f6hav7vw1nykl5h8-gcc-wrapper-10.3.0/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/f9592ghi61h9q590f6hav7vw1nykl5h8-gcc-wrapper-10.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_TESTING
    CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_DOCDIR
    CMAKE_INSTALL_INCLUDEDIR
    CMAKE_INSTALL_INFODIR
    CMAKE_INSTALL_LIBDIR
    CMAKE_INSTALL_LIBEXECDIR
    CMAKE_INSTALL_LOCALEDIR
    CMAKE_INSTALL_MANDIR
    CMAKE_INSTALL_OLDINCLUDEDIR
    CMAKE_INSTALL_SBINDIR
    CMAKE_POLICY_DEFAULT_CMP0025


-- Build files have been written to: /build/source/build
cmake: enabled parallel building
building
build flags: -j16 -l16 SHELL=/nix/store/3365c8gpdcw0vzyk2n4zdzmmns3z6p8x-bash-4.4-p23/bin/bash
[  4%] Generating version.cpp, _version.cpp
Scanning dependencies of target airsaned
[ 12%] Building CXX object CMakeFiles/airsaned.dir/server/main.cpp.o
[ 12%] Building CXX object CMakeFiles/airsaned.dir/server/optionsfile.cpp.o
[ 12%] Generating version.cpp, _version.cpp
[ 20%] Building CXX object CMakeFiles/airsaned.dir/server/mainserver.cpp.o
[ 20%] Building CXX object CMakeFiles/airsaned.dir/server/mainpage.cpp.o
[ 24%] Building CXX object CMakeFiles/airsaned.dir/server/scanner.cpp.o
[ 32%] Building CXX object CMakeFiles/airsaned.dir/server/scannerserver.cpp.o
[ 36%] Building CXX object CMakeFiles/airsaned.dir/server/scannerpage.cpp.o
[ 36%] Building CXX object CMakeFiles/airsaned.dir/server/scanjob.cpp.o
[ 40%] Building CXX object CMakeFiles/airsaned.dir/sanecpp/sanecpp.cpp.o
[ 44%] Building CXX object CMakeFiles/airsaned.dir/basic/uuid.cpp.o
[ 48%] Building CXX object CMakeFiles/airsaned.dir/basic/dictionary.cpp.o
[ 52%] Building CXX object CMakeFiles/airsaned.dir/basic/fdbuf.cpp.o
[ 60%] Building CXX object CMakeFiles/airsaned.dir/web/httpserver.cpp.o
[ 60%] Building CXX object CMakeFiles/airsaned.dir/web/webpage.cpp.o
[ 64%] Building CXX object CMakeFiles/airsaned.dir/web/errorpage.cpp.o
[ 68%] Building CXX object CMakeFiles/airsaned.dir/imageformats/imageencoder.cpp.o
[ 72%] Building CXX object CMakeFiles/airsaned.dir/imageformats/jpegencoder.cpp.o
[ 76%] Building CXX object CMakeFiles/airsaned.dir/imageformats/pdfencoder.cpp.o
[ 80%] Building CXX object CMakeFiles/airsaned.dir/imageformats/pngencoder.cpp.o
[ 84%] Building CXX object CMakeFiles/airsaned.dir/zeroconf/mdnspublisher.cpp.o
[ 88%] Building CXX object CMakeFiles/airsaned.dir/zeroconf/hotplugnotifier.cpp.o
/build/source/imageformats/pngencoder.cpp:20:10: fatal error: libpng/png.h: No such file or directory
   20 | #include <libpng/png.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/airsaned.dir/build.make:336: CMakeFiles/airsaned.dir/imageformats/pngencoder.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/airsaned.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
error: builder for '/nix/store/yjag5vqwxdark3nymkpa5lnfffzpjkp0-airsane-v0.3.2.drv' failed with exit code 2;
       last 10 log lines:
       > [ 84%] Building CXX object CMakeFiles/airsaned.dir/zeroconf/mdnspublisher.cpp.o
       > [ 88%] Building CXX object CMakeFiles/airsaned.dir/zeroconf/hotplugnotifier.cpp.o
       > /build/source/imageformats/pngencoder.cpp:20:10: fatal error: libpng/png.h: No such file or directory
       >    20 | #include <libpng/png.h>
       >       |          ^~~~~~~~~~~~~~
       > compilation terminated.
       > make[2]: *** [CMakeFiles/airsaned.dir/build.make:336: CMakeFiles/airsaned.dir/imageformats/pngencoder.cpp.o] Error 1
       > make[2]: *** Waiting for unfinished jobs....
       > make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/airsaned.dir/all] Error 2
       > make: *** [Makefile:149: all] Error 2
       For full logs, run 'nix log /nix/store/yjag5vqwxdark3nymkpa5lnfffzpjkp0-airsane-v0.3.2.drv'.

The full log:

@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/bxv4n4is4y1i4jyk3dc5h0xzrkxg1ddx-source
source root is source
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
fixing cmake files...
cmake flags: -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LOCALEDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/locale -DCMAKE_INSTALL_LIBEXECDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/libexec -DCMAKE_INSTALL_LIBDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/lib -DCMAKE_INSTALL_DOCDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/doc/airsaned -DCMAKE_INSTALL_INFODIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/info -DCMAKE_INSTALL_MANDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/share/man -DCMAKE_INSTALL_OLDINCLUDEDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/include -DCMAKE_INSTALL_INCLUDEDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/include -DCMAKE_INSTALL_SBINDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/sbin -DCMAKE_INSTALL_BINDIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/bin -DCMAKE_INSTALL_NAME_DIR=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2/lib -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_OSX_SYSROOT= -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_STRIP=/nix/store/jp5synlw78ggp69rrdch6aknb4j3bxr7-binutils-2.35.1/bin/strip -DCMAKE_RANLIB=/nix/store/jp5synlw78ggp69rrdch6aknb4j3bxr7-binutils-2.35.1/bin/ranlib -DCMAKE_AR=/nix/store/jp5synlw78ggp69rrdch6aknb4j3bxr7-binutils-2.35.1/bin/ar -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_INSTALL_PREFIX=/nix/store/q41f7knih003s159qll747pvbd7yx0m9-airsane-v0.3.2  
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/f9592ghi61h9q590f6hav7vw1nykl5h8-gcc-wrapper-10.3.0/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/f9592ghi61h9q590f6hav7vw1nykl5h8-gcc-wrapper-10.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_TESTING
    CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_DOCDIR
    CMAKE_INSTALL_INCLUDEDIR
    CMAKE_INSTALL_INFODIR
    CMAKE_INSTALL_LIBDIR
    CMAKE_INSTALL_LIBEXECDIR
    CMAKE_INSTALL_LOCALEDIR
    CMAKE_INSTALL_MANDIR
    CMAKE_INSTALL_OLDINCLUDEDIR
    CMAKE_INSTALL_SBINDIR
    CMAKE_POLICY_DEFAULT_CMP0025


-- Build files have been written to: /build/source/build
cmake: enabled parallel building
@nix { "action": "setPhase", "phase": "buildPhase" }
building
build flags: -j16 -l16 SHELL=/nix/store/3365c8gpdcw0vzyk2n4zdzmmns3z6p8x-bash-4.4-p23/bin/bash
[  4%] e[34me[1mGenerating version.cpp, _version.cppe[0m
e[35me[1mScanning dependencies of target airsanede[0m
[ 12%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/main.cpp.oe[0m
[ 12%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/optionsfile.cpp.oe[0m
[ 12%] e[34me[1mGenerating version.cpp, _version.cppe[0m
[ 20%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/mainserver.cpp.oe[0m
[ 20%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/mainpage.cpp.oe[0m
[ 24%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/scanner.cpp.oe[0m
[ 32%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/scannerserver.cpp.oe[0m
[ 36%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/scannerpage.cpp.oe[0m
[ 36%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/server/scanjob.cpp.oe[0m
[ 40%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/sanecpp/sanecpp.cpp.oe[0m
[ 44%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/basic/uuid.cpp.oe[0m
[ 48%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/basic/dictionary.cpp.oe[0m
[ 52%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/basic/fdbuf.cpp.oe[0m
[ 60%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/web/httpserver.cpp.oe[0m
[ 60%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/web/webpage.cpp.oe[0m
[ 64%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/web/errorpage.cpp.oe[0m
[ 68%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/imageformats/imageencoder.cpp.oe[0m
[ 72%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/imageformats/jpegencoder.cpp.oe[0m
[ 76%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/imageformats/pdfencoder.cpp.oe[0m
[ 80%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/imageformats/pngencoder.cpp.oe[0m
[ 84%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/zeroconf/mdnspublisher.cpp.oe[0m
[ 88%] e[32mBuilding CXX object CMakeFiles/airsaned.dir/zeroconf/hotplugnotifier.cpp.oe[0m
e[01me[K/build/source/imageformats/pngencoder.cpp:20:10:e[me[K e[01;31me[Kfatal error: e[me[Klibpng/png.h: No such file or directory
   20 | #include e[01;31me[K<libpng/png.h>e[me[K
      |          e[01;31me[K^~~~~~~~~~~~~~e[me[K
compilation terminated.
make[2]: *** [CMakeFiles/airsaned.dir/build.make:336: CMakeFiles/airsaned.dir/imageformats/pngencoder.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/airsaned.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

My derivation file:

{ stdenv, lib, fetchFromGitHub, cmake, libjpeg, libpng, libusb1, sane-backends }:
stdenv.mkDerivation rec {
  name = "airsane-${version}";
  version = "v0.3.2";

  src = fetchFromGitHub {
    owner = "SimulPiscator";
    repo = "AirSane";
    rev = "${version}";
    sha256 = "07wq7mwr2af54m6bfiyakjh12rhqsijd8ajg7qhzijjagl7hiiif";
  };

  buildInputs =  [ 
    sane-backends
    libjpeg
    libpng
    libusb1
  ];

  nativeBuildInputs = [ 
    cmake
  ];
  unpackPhase = "";
}

I included libpng but cmake does not find it.
I am using the channel nixos-21.11 to build.
Did I mess up my derivation file?
How can I track down the error, or import libpng that the build process does not fail?

It looks like it needs a patch that is in master, but not released yet to fix the libpng include location. You also forgot avahi. This gets further, but the cmakelists.txt install section for Linux tries to write the files directly to a FHS location like /lib/systemd/system, etc, which fails in nix sandbox. I see the section in cmakelists.txt for FreeBSD installs to a prefixed location, so a patch/PR could be created to copy that to the linux part. Also small note, it is preferred to keep version as just the plain number, the “v” can go in src.rev / fetchFromGitHub, and use “pname” instead of manually adding version to “name”.

{ stdenv
, lib
, fetchFromGitHub
, cmake
, avahi
, libjpeg
, libpng
, libusb1
, sane-backends
, fetchpatch
}:

stdenv.mkDerivation rec {
  pname = "airsane";
  version = "0.3.2";

  src = fetchFromGitHub {
    owner = "SimulPiscator";
    repo = "AirSane";
    rev = "v${version}";
    sha256 = "07wq7mwr2af54m6bfiyakjh12rhqsijd8ajg7qhzijjagl7hiiif";
  };

  patches = [
    # Fix libpng include
    (fetchpatch {
      url = "https://patch-diff.githubusercontent.com/raw/SimulPiscator/AirSane/pull/60.patch";
      sha256 = "sha256-aGYRCjUq3hMzCerU2C5NY/CGqsA4qKvNIMKRQM+TxMI=";
    })
  ];

  buildInputs =  [ 
    avahi
    libjpeg
    libpng
    libusb1
    sane-backends
  ];

  nativeBuildInputs = [ 
    cmake
  ];
}

Thank you for your help.
I have added the prefix to the linux part of the CMakeLists.txt

And I have added the flag CMAKE_SOURCE_DIR to the derivation:

cmakeFlags = [
     "CMAKE_SOURCE_DIR=${src}"
];

But the build fails with the following error:

nix-build
this derivation will be built:
  /nix/store/c46pkjv746zqks31cnwl475h8dcq9rzg-airsane-0.3.2.drv
these 2 paths will be fetched (0.02 MiB download, 0.09 MiB unpacked):
  /nix/store/gkzmfpb04ddb7phzj8g9sl6saxzprssg-gcc-wrapper-10.3.0
  /nix/store/k8qjik2a44ljdx48lmin2byz77ssrngk-stdenv-linux
copying path '/nix/store/gkzmfpb04ddb7phzj8g9sl6saxzprssg-gcc-wrapper-10.3.0' from 'https://cache.nixos.org'...
copying path '/nix/store/k8qjik2a44ljdx48lmin2byz77ssrngk-stdenv-linux' from 'https://cache.nixos.org'...
building '/nix/store/c46pkjv746zqks31cnwl475h8dcq9rzg-airsane-0.3.2.drv'...
patching sources
configuring
fixing cmake files...
cmake flags: -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LOCALEDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/share/locale -DCMAKE_INSTALL_LIBEXECDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/libexec -DCMAKE_INSTALL_LIBDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/lib -DCMAKE_INSTALL_DOCDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/share/doc/airsane -DCMAKE_INSTALL_INFODIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/share/info -DCMAKE_INSTALL_MANDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/share/man -DCMAKE_INSTALL_OLDINCLUDEDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/include -DCMAKE_INSTALL_INCLUDEDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/include -DCMAKE_INSTALL_SBINDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/sbin -DCMAKE_INSTALL_BINDIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/bin -DCMAKE_INSTALL_NAME_DIR=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2/lib -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_OSX_SYSROOT= -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_STRIP=/nix/store/gkzmfpb04ddb7phzj8g9sl6saxzprssg-gcc-wrapper-10.3.0/bin/strip -DCMAKE_RANLIB=/nix/store/rbqplhv2s539liymkvm3zbjj9lvgzpd5-binutils-2.35.2/bin/ranlib -DCMAKE_AR=/nix/store/rbqplhv2s539liymkvm3zbjj9lvgzpd5-binutils-2.35.2/bin/ar -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_INSTALL_PREFIX=/nix/store/r6cwgfrcm4bcg0ajb9bvxg8g548hfkjg-airsane-0.3.2 CMAKE_SOURCE_DIR=/nix/store/ifkisy8m9v48xsczrybr5f87gw4071m2-source 
CMake Error: The source directory "/build/build/CMAKE_SOURCE_DIR=/nix/store/ifkisy8m9v48xsczrybr5f87gw4071m2-source" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.

I don’t know where the /build/build/ part of the source directory comes from.

I might misremembering things, but isn’t this missing a -D?

Changed it to:

"-DCMAKE_SOURCE_DIR=${src}"

Now fails with:

CMake Error: The source directory "/build" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.