summaryrefslogtreecommitdiff
path: root/editors/openoffice-devel/files/patch-set_soenv.in
blob: e03a7829946dfd3e2af715643b9967164e6c243e (plain) (blame)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--- set_soenv.in.orig	2015-01-17 23:35:07.000000000 -0800
+++ set_soenv.in	2015-02-23 16:02:44.000000000 -0800
@@ -359,7 +359,7 @@
 elsif ( $platform =~ m/freebsd/ ) 
 {     $BIG_SVX        = "TRUE";
       $COM            = "GCC";
-      $COMPATH        = '@COMPATH@'; 
+      $COMPATH        = '@COMPATH@' . '/bin'; 
       $CVER           = "C300";
       $GUI            = "UNX";
       $GUIBASE        = "unx";
@@ -2617,26 +2617,37 @@
 	my @originalPairs = @_;
 	my @pairs = @originalPairs;
 	my @Path = split /$ps/, $oldPath;
+	my @buildPath;
+	my @sysPath;
+	my $elem;
+
+	for $elem (@Path) {
+	    if ($elem eq '.' || $elem =~ m'^$SOLARENV/' ||
+		$elem =~ m'/solenv/') {
+		    push @buildPath, $elem;
+	    } else {
+		    push @sysPath, $elem;
+	    }
+	}
 
 	while (@pairs) {
 	    my $path = shift @pairs;
 	    my $cmd = shift @pairs;
 	    my $to_append = 1;
-	    my $elem;
 
 	    if (! -x "$path/$cmd") {
 		AddWarning ("Missing executable $path/$cmd\n");
 	    }
 
-	    for $elem (@Path) {
+	    for $elem (@sysPath) {
 		if ($elem eq $path) {
 #		    print "Hit duplicate path in path; break\n";
 		    $to_append = 0;
 		    last;
 		}
-		if (-f "$elem/$cmd") {
+		if (-f "$elem/$cmd" && ! -l "$elem/$cmd") {
 #		    print "Element already in path ...\n";
-		    unshift @Path, $path;
+		    unshift @sysPath, $path;
 		    $to_append = 0;
 		    last;
 		} else {
@@ -2644,7 +2655,7 @@
 		}
 	    }
 	    if ($to_append) {
-		push @Path, $path;
+		push @sysPath, $path;
 	    }
 	}
 
@@ -2654,14 +2665,14 @@
 	    my $cmd = shift @pairs;
 	    my $realpath;
 
-	    $realpath = PathLookup ($cmd, @Path);
+	    $realpath = PathLookup ($cmd, @sysPath);
 	    if (!($realpath eq $path)) {
 		AddWarning ("Path conflict for executables " .
                             "$path/$cmd against $realpath");
 	    }
 	}
 
-	return join $ps, CleanupPath (@Path);
+	return join $ps, @buildPath, CleanupPath (@sysPath);
 }
 
 #------------------------------------------------------------