Bug 14801 – OS X installer not compatible with OS X 10.11

Status
RESOLVED
Resolution
FIXED
Severity
blocker
Priority
P1
Component
installer
Product
D
Version
D2
Platform
All
OS
Mac OS X
Creation time
2015-07-15T07:01:00Z
Last change time
2015-10-04T18:20:45Z
Assigned to
nobody
Creator
doob

Comments

Comment #0 by doob — 2015-07-15T07:01:04Z
In the upcoming OS X 10.11 El Capitan Apple have new security policies. The result of this is that /usr/bin (and some other directories) are not writable, not even by root but /usr/local is available for developers [1]. The OS X installer should create the symlinks in /usr/local/bin instead of /usr/bin. /usr/local/bin is in the default PATH, so there should hopefully be no problems. [1] https://developer.apple.com/videos/wwdc/2015/?id=706
Comment #1 by code — 2015-07-25T21:24:44Z
*** Issue 14826 has been marked as a duplicate of this issue. ***
Comment #2 by code — 2015-07-26T05:29:36Z
I build an installer that creates links in /usr/local/bin, can you please check whether that resolves the issue. https://dlang.dawg.eu/downloads/dmd.2.068.0-b2~fix14801/ https://github.com/MartinNowak/installer/commit/833a78085c680e92381d56c31349a3981c8c7318
Comment #3 by doob — 2015-07-28T10:10:24Z
Unfortunately it doesn't work. I'll see if I can find some more information.
Comment #4 by doob — 2015-07-28T11:00:08Z
It seems that /usr/share also isn't writable. I'm not sure where it's best to place the DMD installation. Apple doesn't have so much documentation about this specific for command line tools. * MacPort places everything in /opt/local * Homebrew places packages in their own directory somewhere in /usr/local * There are some Ruby and Perl related folders (gems) in /Library
Comment #5 by code — 2015-07-28T21:25:42Z
(In reply to Jacob Carlborg from comment #4) > It seems that /usr/share also isn't writable. I'm not sure where it's best > to place the DMD installation. /usr/local/bin <- binaries go here /usr/local/lib <- libs go here /usr/local/share/dmd <- docs and examples go here Can you take care of that?
Comment #6 by doob — 2015-07-29T08:56:14Z
I prefer that the compiler is installed in one single directory and then symlinked to /usr/local/bin.
Comment #7 by doob — 2015-07-29T13:59:12Z
Comment #8 by code — 2015-07-30T07:19:48Z
(In reply to Jacob Carlborg from comment #6) > I prefer that the compiler is installed in one single directory and then > symlinked to /usr/local/bin. Why? It means twice as many files, and you'll still have to remove them.
Comment #9 by github-bugzilla — 2015-08-01T18:32:15Z
Commits pushed to master at https://github.com/D-Programming-Language/installer https://github.com/D-Programming-Language/installer/commit/bd102fb2c11eff9ada1cc1c90d0c1fe7491cc46f Fix issue 14801: OS X installer not compatible with OS X 10.11 In the upcoming OS X 10.11 /usr is not writable. Instead the compiler is installed in /Library/D/dmd and symlinked to /usr/local. https://github.com/D-Programming-Language/installer/commit/b88e264bb385ba1f540f58dae9bde0c623bd4aef Merge pull request #128 from jacob-carlborg/issue_14801 Fix issue 14801: OS X installer not compatible with OS X 10.11
Comment #10 by github-bugzilla — 2015-08-01T18:33:37Z
Commit pushed to stable at https://github.com/D-Programming-Language/installer https://github.com/D-Programming-Language/installer/commit/ff2eac28c6ca6ea483ebf3dd8f8ffd8e4d03921e Merge pull request #128 from jacob-carlborg/issue_14801 Fix issue 14801: OS X installer not compatible with OS X 10.11
Comment #11 by code — 2015-08-01T21:24:44Z
Can someone please check that this installer fixes the problem? https://dlang.dawg.eu/downloads/dmd.2.068.0-b2~fix14801/
Comment #12 by code — 2015-08-03T21:21:53Z
(In reply to Martin Nowak from comment #11) Looks like the dmd.conf wasn't updated accordingly. From Andrew: It seems I spoke a bit too early, it actually does not. Placement of the files worked but links to all the necessary binaries were not properly made. only dmd has a link in /usr/local/bin/ DMD complains that it cannot find the import paths /usr/share/dmd/src/phobos /usr/share/dmd/src/druntime/import These should not exist because the system will not allow you to write to /usr/share, they should instead be placed in /usr/local/share.
Comment #13 by code — 2015-08-03T23:07:50Z
Comment #14 by github-bugzilla — 2015-08-05T10:55:40Z
Comment #15 by github-bugzilla — 2015-10-04T18:20:45Z