diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2021-08-23 09:24:19 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyich@gmail.com> | 2021-09-06 07:46:13 +0100 |
commit | 6073831a11510127a41ff2478abd799f0965e2f4 (patch) | |
tree | 6bd49395b13e0c62e1d32c6ac9c9eff7712e0362 /pkgs/servers/x11 | |
parent | 79031203b88f8b96b1321416f59e23481cceed45 (diff) |
imake: do not skip Linux* vendor definitions
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 after 8675ca0 ("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 in https://gitlab.freedesktop.org/xorg/util/cf/-/commit/d47131ed97ee491bb883c29ec0b106e8d5acfcd3. 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>
Diffstat (limited to 'pkgs/servers/x11')
-rw-r--r-- | pkgs/servers/x11/xorg/imake.patch | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/pkgs/servers/x11/xorg/imake.patch b/pkgs/servers/x11/xorg/imake.patch index 1d0ec88761d43..e8ce66cdee002 100644 --- a/pkgs/servers/x11/xorg/imake.patch +++ b/pkgs/servers/x11/xorg/imake.patch @@ -1,31 +1,35 @@ -diff -Naur imake-1.0.7-orig/imake.c imake-1.0.7/imake.c ---- imake-1.0.7-orig/imake.c 2013-08-17 10:11:50.000000000 +0000 -+++ imake-1.0.7/imake.c 2015-02-04 09:41:59.000000000 +0000 -@@ -1045,6 +1045,7 @@ - static void - get_distrib(FILE *inFile) - { -+#if 0 - struct stat sb; +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"); - static const char* suse = "/etc/SuSE-release"; -@@ -1090,6 +1091,7 @@ ++#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 ++#endif /* what's the definitive way to tell what any particular distribution is? */ fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxUnknown"); -@@ -1337,6 +1339,7 @@ +@@ -1337,6 +1339,7 @@ get_gcc_version(FILE *inFile, char *name) static boolean get_gcc(char *cmd) { -+#if 0 ++#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 @@ +@@ -1385,6 +1388,9 @@ get_gcc(char *cmd) } } return FALSE; |