1diff -r -u gnustep-base-1.24.7/Makefile.postamble gnustep-base-1.24.7.patched/Makefile.postamble
2--- gnustep-base-1.24.7/Makefile.postamble 2011-07-15 19:53:45.000000000 +0600
3+++ gnustep-base-1.24.7.patched/Makefile.postamble 2014-11-29 22:25:07.000000000 +0600
4@@ -38,13 +38,13 @@
5 # Things to do after compiling
6 # after-all::
7
8-$(DESTDIR)$(GNUSTEP_MAKEFILES)/Additional:
9- $(ECHO_CREATING)$(MKDIRS) $(DESTDIR)$(GNUSTEP_MAKEFILES)/Additional$(END_ECHO)
10+$(DESTDIR_GNUSTEP_MAKEFILES)/Additional:
11+ $(ECHO_CREATING)$(MKDIRS) $(DESTDIR_GNUSTEP_MAKEFILES)/Additional$(END_ECHO)
12
13 # Things to do before installing
14-before-install:: $(DESTDIR)$(GNUSTEP_MAKEFILES)/Additional
15+before-install:: $(DESTDIR_GNUSTEP_MAKEFILES)/Additional
16 $(ECHO_NOTHING)$(INSTALL_DATA) base.make \
17- $(DESTDIR)$(GNUSTEP_MAKEFILES)/Additional/base.make$(END_ECHO)
18+ $(DESTDIR_GNUSTEP_MAKEFILES)/Additional/base.make$(END_ECHO)
19
20 # Things to do after installing
21 # after-install::
22@@ -54,7 +54,7 @@
23
24 # Things to do after uninstalling
25 after-uninstall::
26- $(ECHO_NOTHING)rm -f $(DESTDIR)$(GNUSTEP_MAKEFILES)/Additional/base.make$(END_ECHO)
27+ $(ECHO_NOTHING)rm -f $(DESTDIR_GNUSTEP_MAKEFILES)/Additional/base.make$(END_ECHO)
28
29 # Things to do before cleaning
30 # before-clean::
31diff -r -u gnustep-base-1.24.7/Source/NSPathUtilities.m gnustep-base-1.24.7.patched/Source/NSPathUtilities.m
32--- gnustep-base-1.24.7/Source/NSPathUtilities.m 2014-01-14 13:21:10.000000000 +0600
33+++ gnustep-base-1.24.7.patched/Source/NSPathUtilities.m 2015-01-25 13:59:37.000000000 +0600
34@@ -153,16 +153,27 @@
35 static NSString *gnustepLocalUsersDir = nil;
36
37 static NSString *gnustepSystemApps = nil;
38+static NSArray *gnustepSystemAppsNix = nil;
39 static NSString *gnustepSystemAdminApps = nil;
40+static NSArray *gnustepSystemAdminAppsNix = nil;
41 static NSString *gnustepSystemWebApps = nil;
42+static NSArray *gnustepSystemWebAppsNix = nil;
43 static NSString *gnustepSystemTools = nil;
44+static NSArray *gnustepSystemToolsNix = nil;
45 static NSString *gnustepSystemAdminTools = nil;
46+static NSArray *gnustepSystemAdminToolsNix = nil;
47 static NSString *gnustepSystemLibrary = nil;
48+static NSArray *gnustepSystemLibraryNix = nil;
49 static NSString *gnustepSystemLibraries = nil;
50+static NSArray *gnustepSystemLibrariesNix = nil;
51 static NSString *gnustepSystemHeaders = nil;
52+static NSArray *gnustepSystemHeadersNix = nil;
53 static NSString *gnustepSystemDocumentation = nil;
54+static NSArray *gnustepSystemDocumentationNix = nil;
55 static NSString *gnustepSystemDocumentationInfo = nil;
56+static NSArray *gnustepSystemDocumentationInfoNix = nil;
57 static NSString *gnustepSystemDocumentationMan = nil;
58+static NSArray *gnustepSystemDocumentationManNix = nil;
59
60 static NSString *gnustepNetworkApps = nil;
61 static NSString *gnustepNetworkAdminApps = nil;
62@@ -258,6 +269,18 @@
63 }\
64 })
65
66+/* Like ASSIGN_PATH, but permits multiple components in a path
67+ */
68+#define ASSIGN_PATH_NIX(var, dictionary, key) ({\
69+ id val = getPathConfigNix(dictionary, key);\
70+ if (val != nil)\
71+ {\
72+ RELEASE(var);\
73+ var = RETAIN(val);\
74+ [dictionary removeObjectForKey: key];\
75+ }\
76+})
77+
78 /* Like ASSIGN_PATH(), but permits the result to be a relative path as that
79 * is what we normally use (the path is within the user's home directory).
80 */
81@@ -368,7 +391,7 @@
82 /* Get a full path string */
83 static inline NSString *
84 getPath(NSString *path)
85-{
86+{
87 if ([path hasPrefix: @"./"] == YES)
88 {
89 path = [gnustepConfigPath stringByAppendingPathComponent:
90@@ -383,6 +406,33 @@
91 return path;
92 }
93
94+static inline NSArray *
95+getPathConfigNix(NSDictionary *dict, NSString *key)
96+{
97+ NSArray *res = nil;
98+ NSMutableArray *paths = nil;
99+ NSString *path;
100+#if defined(__MINGW_)
101+ NSString *sep = @";";
102+#else
103+ NSString *sep = @":";
104+#endif
105+
106+ path = [dict objectForKey: key];
107+ if (path != nil)
108+ {
109+ if ([path rangeOfString:sep].location != NSNotFound)
110+ {
111+ res = [path componentsSeparatedByString:sep];
112+ }
113+ else
114+ {
115+ res = [[NSArray alloc] initWithObjects:path, nil];
116+ }
117+ }
118+ return res;
119+}
120+
121 /* Get a full path string from a dictionary */
122 static inline NSString *
123 getPathConfig(NSDictionary *dict, NSString *key)
124@@ -468,6 +518,29 @@
125 ASSIGN_PATH(gnustepSystemDocumentationInfo, c,
126 @"GNUSTEP_SYSTEM_DOC_INFO");
127
128+ ASSIGN_PATH_NIX(gnustepSystemAppsNix, c,
129+ @"NIX_GNUSTEP_SYSTEM_APPS");
130+ ASSIGN_PATH_NIX(gnustepSystemAdminAppsNix, c,
131+ @"NIX_GNUSTEP_SYSTEM_ADMIN_APPS");
132+ ASSIGN_PATH_NIX(gnustepSystemWebAppsNix, c,
133+ @"NIX_GNUSTEP_SYSTEM_WEB_APPS");
134+ ASSIGN_PATH_NIX(gnustepSystemToolsNix, c,
135+ @"NIX_GNUSTEP_SYSTEM_TOOLS");
136+ ASSIGN_PATH_NIX(gnustepSystemAdminToolsNix, c,
137+ @"NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS");
138+ ASSIGN_PATH_NIX(gnustepSystemLibraryNix, c,
139+ @"NIX_GNUSTEP_SYSTEM_LIBRARY");
140+ ASSIGN_PATH_NIX(gnustepSystemLibrariesNix, c,
141+ @"NIX_GNUSTEP_SYSTEM_LIBRARIES");
142+ ASSIGN_PATH_NIX(gnustepSystemHeadersNix, c,
143+ @"NIX_GNUSTEP_SYSTEM_HEADERS");
144+ ASSIGN_PATH_NIX(gnustepSystemDocumentationNix, c,
145+ @"NIX_GNUSTEP_SYSTEM_DOC");
146+ ASSIGN_PATH_NIX(gnustepSystemDocumentationManNix, c,
147+ @"NIX_GNUSTEP_SYSTEM_DOC_MAN");
148+ ASSIGN_PATH_NIX(gnustepSystemDocumentationInfoNix, c,
149+ @"NIX_GNUSTEP_SYSTEM_DOC_INFO");
150+
151 ASSIGN_PATH(gnustepNetworkApps, c,
152 @"GNUSTEP_NETWORK_APPS");
153 ASSIGN_PATH(gnustepNetworkAdminApps, c,
154@@ -1235,6 +1308,18 @@
155 DESTROY(gnustepSystemDocumentationMan);
156 DESTROY(gnustepSystemDocumentationInfo);
157
158+ DESTROY(gnustepSystemAppsNix);
159+ DESTROY(gnustepSystemAdminAppsNix);
160+ DESTROY(gnustepSystemWebAppsNix);
161+ DESTROY(gnustepSystemToolsNix);
162+ DESTROY(gnustepSystemAdminToolsNix);
163+ DESTROY(gnustepSystemLibraryNix);
164+ DESTROY(gnustepSystemLibrariesNix);
165+ DESTROY(gnustepSystemHeadersNix);
166+ DESTROY(gnustepSystemDocumentationNix);
167+ DESTROY(gnustepSystemDocumentationManNix);
168+ DESTROY(gnustepSystemDocumentationInfoNix);
169+
170 DESTROY(gnustepNetworkApps);
171 DESTROY(gnustepNetworkAdminApps);
172 DESTROY(gnustepNetworkWebApps);
173@@ -2183,6 +2268,27 @@
174 if ([add_dir length] > 0 && [paths containsObject: add_dir] == NO) \
175 [paths addObject: add_dir]; \
176 }
177+#define ADD_PATH_NIX(mask, base_dirs, add_dir) \
178+if ((domainMask & mask) && (base_dirs != nil)) \
179+{ \
180+ NSEnumerator *e = [base_dirs objectEnumerator]; \
181+ NSString *dir = nil; \
182+ while (dir = [e nextObject]) { \
183+ path = [dir stringByAppendingPathComponent: add_dir]; \
184+ if ([path length] > 0 && [paths containsObject: path] == NO) \
185+ [paths addObject: path]; \
186+ } \
187+}
188+#define ADD_PLATFORM_PATH_NIX(mask, add_dirs) \
189+if ((domainMask & mask) && (add_dirs != nil)) \
190+{ \
191+ NSEnumerator *e = [add_dirs objectEnumerator]; \
192+ NSString *dir = nil; \
193+ while (dir = [e nextObject]) { \
194+ if ([dir length] > 0 && [paths containsObject: dir] == NO) \
195+ [paths addObject:dir]; \
196+ } \
197+}
198
199 switch (directoryKey)
200 {
201@@ -2191,11 +2297,13 @@
202 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserApps);
203 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalApps);
204 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkApps);
205+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAppsNix);
206 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemApps);
207
208 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserAdminApps);
209 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalAdminApps);
210 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkAdminApps);
211+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminAppsNix);
212 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemAdminApps);
213 }
214 break;
215@@ -2205,6 +2313,7 @@
216 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserApps);
217 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalApps);
218 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkApps);
219+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAppsNix);
220 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemApps);
221 }
222 break;
223@@ -2214,6 +2323,7 @@
224 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserApps);
225 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalApps);
226 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkApps);
227+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAppsNix);
228 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemApps);
229
230 /* I imagine if ever wanted a separate Demo directory, the
231@@ -2231,6 +2341,7 @@
232
233 case NSCoreServicesDirectory:
234 {
235+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix, @"CoreServices");
236 ADD_PATH(NSSystemDomainMask, gnustepSystemLibrary, @"CoreServices");
237 }
238 break;
239@@ -2248,6 +2359,7 @@
240 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserApps);
241 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalApps);
242 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkApps);
243+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAppsNix);
244 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemApps);
245 }
246 break;
247@@ -2257,6 +2369,7 @@
248 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserAdminApps);
249 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalAdminApps);
250 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkAdminApps);
251+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminAppsNix);
252 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemAdminApps);
253 }
254 break;
255@@ -2266,6 +2379,7 @@
256 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserLibrary);
257 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalLibrary);
258 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkLibrary);
259+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix);
260 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemLibrary);
261 }
262 break;
263@@ -2281,6 +2395,7 @@
264 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserLibrary);
265 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalLibrary);
266 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkLibrary);
267+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix);
268 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemLibrary);
269 }
270 break;
271@@ -2418,6 +2533,7 @@
272 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserDocumentation);
273 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalDocumentation);
274 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkDocumentation);
275+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemDocumentationNix);
276 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemDocumentation);
277 }
278 break;
279@@ -2449,6 +2565,7 @@
280 ADD_PATH(NSUserDomainMask, gnustepUserLibrary, @"Caches");
281 ADD_PATH(NSLocalDomainMask, gnustepLocalLibrary, @"Caches");
282 ADD_PATH(NSNetworkDomainMask, gnustepNetworkLibrary, @"Caches");
283+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix, @"Caches");
284 ADD_PATH(NSSystemDomainMask, gnustepSystemLibrary, @"Caches");
285 }
286 break;
287@@ -2460,6 +2577,8 @@
288 @"ApplicationSupport");
289 ADD_PATH(NSNetworkDomainMask, gnustepNetworkLibrary,
290 @"ApplicationSupport");
291+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix,
292+ @"ApplicationSupport");
293 ADD_PATH(NSSystemDomainMask, gnustepSystemLibrary,
294 @"ApplicationSupport");
295 }
296@@ -2471,6 +2590,7 @@
297 ADD_PATH(NSUserDomainMask, gnustepUserLibrary, @"Frameworks");
298 ADD_PATH(NSLocalDomainMask, gnustepLocalLibrary, @"Frameworks");
299 ADD_PATH(NSNetworkDomainMask, gnustepNetworkLibrary, @"Frameworks");
300+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix, @"Frameworks");
301 ADD_PATH(NSSystemDomainMask, gnustepSystemLibrary, @"Frameworks");
302 }
303 break;
304@@ -2480,6 +2600,7 @@
305 ADD_PATH(NSUserDomainMask, gnustepUserLibrary, @"Fonts");
306 ADD_PATH(NSLocalDomainMask, gnustepLocalLibrary, @"Fonts");
307 ADD_PATH(NSNetworkDomainMask, gnustepNetworkLibrary, @"Fonts");
308+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibraryNix, @"Fonts");
309 ADD_PATH(NSSystemDomainMask, gnustepSystemLibrary, @"Fonts");
310 }
311 break;
312@@ -2518,6 +2639,12 @@
313 if (part)
314 ADD_PATH(NSNetworkDomainMask, gnustepNetworkLibraries, part);
315
316+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemLibrariesNix);
317+ if (full)
318+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibrariesNix, full);
319+ if (part)
320+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemLibrariesNix, part);
321+
322 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemLibraries);
323 if (full)
324 ADD_PATH(NSSystemDomainMask, gnustepSystemLibraries, full);
325@@ -2560,6 +2687,12 @@
326 if (part)
327 ADD_PATH(NSNetworkDomainMask, gnustepNetworkTools, part);
328
329+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemToolsNix);
330+ if (full)
331+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemToolsNix, full);
332+ if (part)
333+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemToolsNix, part);
334+
335 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemTools);
336 if (full)
337 ADD_PATH(NSSystemDomainMask, gnustepSystemTools, full);
338@@ -2602,6 +2735,18 @@
339 if (part)
340 ADD_PATH(NSNetworkDomainMask, gnustepNetworkAdminTools, part);
341
342+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminToolsNix);
343+ if (full)
344+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminToolsNix, full);
345+ if (part)
346+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminToolsNix, part);
347+
348+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminToolsNix);
349+ if (full)
350+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminToolsNix, full);
351+ if (part)
352+ ADD_PATH_NIX(NSSystemDomainMask, gnustepSystemAdminToolsNix, part);
353+
354 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemAdminTools);
355 if (full)
356 ADD_PATH(NSSystemDomainMask, gnustepSystemAdminTools, full);
357@@ -2615,6 +2760,7 @@
358 ADD_PLATFORM_PATH(NSUserDomainMask, gnustepUserWebApps);
359 ADD_PLATFORM_PATH(NSLocalDomainMask, gnustepLocalWebApps);
360 ADD_PLATFORM_PATH(NSNetworkDomainMask, gnustepNetworkWebApps);
361+ ADD_PLATFORM_PATH_NIX(NSSystemDomainMask, gnustepSystemWebAppsNix);
362 ADD_PLATFORM_PATH(NSSystemDomainMask, gnustepSystemWebApps);
363 }
364 break;
365@@ -2622,6 +2768,8 @@
366
367 #undef ADD_PATH
368 #undef ADD_PLATFORM_PATH
369+#undef ADD_PATH_NIX
370+#undef ADD_PLATFORM_PATH_NIX
371
372 count = [paths count];
373 for (i = 0; i < count; i++)