-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
66 lines (45 loc) · 2.35 KB
/
README
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
libstupid
=========
What is this?
-------------
Some damned fool programmers apparently can't tell the difference between
upper and lower case. This is annoying because it means that they constantly
break compatibility with case-sensitive filesystems.
Most of these idiots started on the Windows platform, which is basically
always case insensitive. A few of them started on the Mac OS platform, prior
to Mac OS X. One or two of them (particularly those working for a well-known
game porting company beginning with the letter "A", and those working for
another well-known gaming company beginning with the letter "V") are *so*
aggressively stupid that they refuse to fix their bugs and instead try to
claim that it isn't their problem. They may even *add* code to aggressively
stop people from running their software on a case-sensitive filesystem, on the
assumption that this is better than fixing their bugs.
libstupid is a library for them. Or rather, to address their wanton idiocy.
You use it via dyld interposing, and it replaces a set of path-based functions
with modified versions that, on finding that the programmer is an idiot, will
search for files with names that differ only in case.
How do I use it?
----------------
Broadly speaking you do something like this:
DYLD_INSERT_LIBRARIES=<path to libstupid.dylib> <executable path>
So, perhaps you install libstupid.dylib in /usr/local/lib, after building it
with Xcode 4, and then you want to run a program called Foo.app, written by a
stupid person. So you start Terminal and enter
DYLD_INSERT_LIBRARIES=/usr/local/lib/libstupid.dylib \
/Applications/Foo.app/Contents/MacOS/Foo
A certain piece of software written by the aforementioned company starting
with the letter "V", which itself starts with the letter "S", can be run using
something like
DYLD_INSERT_LIBRARIES=/usr/local/lib/libstupid.dylib \
/Applications/Something.app/Contents/MacOS/something.sh
I can't get this working
------------------------
Then you probably shouldn't run it, and should instead complain at the idiots
who are causing you a problem.
I need help
-----------
There is no help.
I *am* an idiot programmer and I find your diatribe against me offensive
------------------------------------------------------------------------
Grow up and fix your bugs, and then I'll talk to you. Otherwise, you're too
stupid to exist.