Change:
Describe the bug Building fails with the following messages: Note that points to which updates . To Reproduce Steps to reproduce the behavior: Expected behavior The package is built successfully. Notify maintainers (gfan, cddlib), (cddlib) Metadata system: host os: multi-user?: sandbox: version: channels(root): channels(omasanori): nixpkgs: Maintainer information:
cddlib put its .h file in <hash-cddlib-0.94l/include/cddlib/ rather than the old version of the library placing it .h headers in the root. <hash-cddlib-0.94j/include/ So options are get upstream to #include "cddlib/setoper.h" (and the rest of the directly pathed includes) Patch it in the derivation Take a look at the library is being why it differs from 0.94j to 0.94l ...... and see if can be symlinked (botched). not sure why it's subpathing these .h file now?
v0.94k header files are now installed to PREFIX/include/cddlib to avoid clashes with other libraries. configuration file for pkg-config : assuming cddlib installed in <prefixknown to pkg-config, "pkg-config --cflags cddlib" etc will work. (Otherwise, one would need PKGCONFIGPATH=<prefix/lib/pkgconfig). this is the source of the breakage. this probably breaks everything that uses this library.... lovely! So, options are fix it gfan upstream, or patch it in nix?????? has a 41 length thread, where the developers are trying to workout how not to break any application that uses this library and which distro's they want to break.
Thank you for your survey, The long-term solution would be fixing gfan upstream, given that this is not Nix-specific. The current Makefile assumes that, if cddlib headers are prefixed, the prefix is instead of . A variable to change the prefix will help every package maintainer IMHO. However, adding a patch to gfan just altering with into nixpkg may be fine for now. I will try to address it next week but feel free to make a PR if it is urgent for anyone.

Discussion:
sha256 = "02pihqb1lb76a0xbfwjzs1cd6ay3ldfxsm8dvsbl6qs3vkjxax56"; }; <del> patchPhase = stdenv.lib.optionalString stdenv.cc.isClang '' </del> <ins> patches = [ ./gfan-0.6.2-cddlib-prefix.patch ]; postPatch = stdenv.lib.optionalString stdenv.cc.isClang '' </ins> substituteInPlace Makefile --replace "-fno-guess-branch-probability" "" ''; <del> buildFlags = [ "CC=cc" "CXX=c++" "cddnoprefix=1" ]; </del> <ins> buildFlags = [ "CC=cc" "CXX=c++" ]; </ins> installFlags = [ ''PREFIX=$(out)'' ]; buildInputs = [ gmp mpir cddlib ];

<ins> diff -ru gfan0.6.2.orig/src/app_librarytest.cpp gfan0.6.2/src/app_librarytest.cpp --- gfan0.6.2.orig/src/app_librarytest.cpp	2020-10-19 08:41:27.981863500 +0900 +++ gfan0.6.2/src/app_librarytest.cpp	2020-10-19 08:42:44.551863500 +0900 @@ -12,8 +12,8 @@ #include "setoper.h" #include "cdd.h" #else -#include "cdd/setoper.h" -#include "cdd/cdd.h" +#include "cddlib/setoper.h" +#include "cddlib/cdd.h" #endif #include <iostream> #include <fstream> diff -ru gfan0.6.2.orig/src/gfanlib_zcone.cpp gfan0.6.2/src/gfanlib_zcone.cpp --- gfan0.6.2.orig/src/gfanlib_zcone.cpp	2020-10-19 08:41:27.981863500 +0900 +++ gfan0.6.2/src/gfanlib_zcone.cpp	2020-10-19 08:42:44.571863500 +0900 @@ -16,8 +16,8 @@ #include "setoper.h" #include "cdd.h" #else -#include "cdd/setoper.h" -#include "cdd/cdd.h" +#include "cddlib/setoper.h" +#include "cddlib/cdd.h" #endif //} @@ -52,8 +52,8 @@ "dd_free_global_constants()n" "in your deinitialisation code (only available for cddlib version>=094d).n" "This requires the header includes:n" -				  "#include "cdd/setoper.h"n" -				  "#include "cdd/cdd.h"n" +				  "#include "cddlib/setoper.h"n" +				  "#include "cddlib/cdd.h"n" "n" "Alternatively, you may call gfan:initializeCddlibIfRequired() and deinitializeCddlibIfRequired()n" "if gfanlib is the only code using cddlib. If at some point cddlib is no longer required by gfanlibn" diff -ru gfan0.6.2.orig/src/lp_cdd.cpp gfan0.6.2/src/lp_cdd.cpp --- gfan0.6.2.orig/src/lp_cdd.cpp	2020-10-19 08:41:27.991863500 +0900 +++ gfan0.6.2/src/lp_cdd.cpp	2020-10-19 08:42:44.571863500 +0900 @@ -5,9 +5,9 @@ #include "cdd.h" #include "cdd_f.h" #else -#include "cdd/setoper.h" -#include "cdd/cdd.h" -#include "cdd/cdd_f.h" +#include "cddlib/setoper.h" +#include "cddlib/cdd.h" +#include "cddlib/cdd_f.h" #endif //} #include "termorder.h" </ins>