Initial build failure is onserved on `staging` branch: ``` $ nix-build -A transfig ... make[1]: Entering directory '/build/transfig.3.2.4' Imakefile.c:20:2: Include file Imake.tmpl not found imake: Exit code 1. Stop. ``` This happened after8675ca0
("xorg.xorgcffiles: 1.0.6 -> 1.0.7") bump which exposed an old bug in `imake.patch`. `imake.patch` dropped by accident definiton of `LinuxRedHat` enum and changed evaluation of the following code: ``` #if LinuxDistribution == LinuxRedHat ... # define ProjectRoot /usr #endif ``` References to `/usr` were addded ind47131ed97
. Before this change `LinuxDistribution == LinuxRedHat` evaluated to true. After this change `LinuxDistribution == LinuxRedHat` evaluates to false. Mechanically I moved `#if 0` right after enum definitions but still before system autodetection. Now `transfig` builds successfully. Closes: https://github.com/NixOS/nixpkgs/issues/135337 Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
42 lines
1.2 KiB
Diff
42 lines
1.2 KiB
Diff
Disable imake autodetection for:
|
|
- LinuxDistribution to avoid injection of /usr paths
|
|
- gcc to avoid use uf /usr/bin/gcc
|
|
|
|
https://github.com/NixOS/nixpkgs/issues/135337
|
|
--- a/imake.c
|
|
+++ b/imake.c
|
|
@@ -1065,6 +1065,7 @@ get_distrib(FILE *inFile)
|
|
fprintf (inFile, "%s\n", "#define LinuxWare 11");
|
|
fprintf (inFile, "%s\n", "#define LinuxYggdrasil 12");
|
|
|
|
+#if 0 /* disable system autodetection. Fall through to LinuxUnknown. */
|
|
# ifdef CROSSCOMPILE
|
|
if (CrossCompiling) {
|
|
fprintf (inFile, "%s\n",
|
|
@@ -1090,6 +1091,7 @@ get_distrib(FILE *inFile)
|
|
* at the content of /etc/debian_version */
|
|
return;
|
|
}
|
|
+#endif
|
|
/* what's the definitive way to tell what any particular distribution is? */
|
|
|
|
fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxUnknown");
|
|
@@ -1337,6 +1339,7 @@ get_gcc_version(FILE *inFile, char *name)
|
|
static boolean
|
|
get_gcc(char *cmd)
|
|
{
|
|
+#if 0 /* disable gcc autodetection. Fall through to explicitly set. */
|
|
struct stat sb;
|
|
static const char* gcc_path[] = {
|
|
#if defined(linux) || \
|
|
@@ -1385,6 +1388,9 @@ get_gcc(char *cmd)
|
|
}
|
|
}
|
|
return FALSE;
|
|
+#endif
|
|
+ strcpy (cmd, IMAKE_COMPILETIME_CPP);
|
|
+ return TRUE;
|
|
}
|
|
|
|
#ifdef CROSSCOMPILE
|