Package: polymake / 3.2r4-4

0001-user-dir-cleanup-pre-ninja-private-wrapper-dir.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From d7f37d6d9f80f31e760c56386611c6a0b36b0a9a Mon Sep 17 00:00:00 2001
From: Benjamin Lorenz <lorenz@math.tu-berlin.de>
Date: Mon, 26 Feb 2018 14:48:59 +0100
Subject: [PATCH] user dir: cleanup pre-ninja private wrapper dir

polymake fails to start when there is a pre-ninja private wrapper directory:
ninja: fatal: chdir to '.polymake/wrappers.0/build/Opt' - No such file or directory
this only occurs when 3.2 is installed in the same prefix as the old version,
otherwise it will use a different wrappers.x directory

polymake now ignores private wrapper directories without config.ninja at startup
and it will get cleaned up during create_private_wrapper when a new wrapper is requested
---
 perllib/Polymake/Core/CPlusPlus.pm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/perllib/Polymake/Core/CPlusPlus.pm b/perllib/Polymake/Core/CPlusPlus.pm
index 2973fb7..e335c62 100644
--- a/perllib/Polymake/Core/CPlusPlus.pm
+++ b/perllib/Polymake/Core/CPlusPlus.pm
@@ -2063,7 +2063,9 @@ Note that debug output in some clients only appears at high debug levels (-dd an
 
    my $wrapper_key=private_wrapper_key();
    if ($PrivateDir && defined (my $dir=$private_wrappers{$wrapper_key})) {
-      if (-d ($dir="$PrivateDir/$dir")) {
+      # ignore leftover directories from pre-ninja polymake
+      # it will be removed during create_private_wrapper
+      if (-d ($dir="$PrivateDir/$dir") && glob("$dir/build*/config.ninja")) {
          $private_wrapper_ext=new Extension($dir, "private:");
          my $ext;
          foreach my $prereq (@{$private_wrapper_ext->requires}) {