Skip to content

Commit d6a9ab4

Browse files
committed
Work around quarantine, prep v8 (#34)
1 parent e0b3c78 commit d6a9ab4

File tree

2 files changed

+58
-20
lines changed

2 files changed

+58
-20
lines changed

EnvPane.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@
681681
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
682682
CODE_SIGN_IDENTITY = "Developer ID Application: Hannes Schmidt (4LMPAN643V)";
683683
COPY_PHASE_STRIP = NO;
684-
CURRENT_PROJECT_VERSION = 0.7;
684+
CURRENT_PROJECT_VERSION = 0.8;
685685
DEAD_CODE_STRIPPING = YES;
686686
ENABLE_STRICT_OBJC_MSGSEND = YES;
687687
ENABLE_TESTABILITY = YES;
@@ -710,7 +710,7 @@
710710
GCC_WARN_UNUSED_VARIABLE = YES;
711711
LIBRARY_SEARCH_PATHS = /opt/homebrew/lib;
712712
MACOSX_DEPLOYMENT_TARGET = 12.4;
713-
MARKETING_VERSION = 0.7;
713+
MARKETING_VERSION = 0.8;
714714
ONLY_ACTIVE_ARCH = YES;
715715
OTHER_LDFLAGS = "-all_load";
716716
USER_HEADER_SEARCH_PATHS = (
@@ -761,7 +761,7 @@
761761
CLANG_WARN_UNREACHABLE_CODE = YES_AGGRESSIVE;
762762
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
763763
CODE_SIGN_IDENTITY = "Developer ID Application: Hannes Schmidt (4LMPAN643V)";
764-
CURRENT_PROJECT_VERSION = 0.7;
764+
CURRENT_PROJECT_VERSION = 0.8;
765765
DEAD_CODE_STRIPPING = YES;
766766
ENABLE_STRICT_OBJC_MSGSEND = YES;
767767
GCC_NO_COMMON_BLOCKS = YES;
@@ -789,7 +789,7 @@
789789
"LIBRARY_SEARCH_PATHS[arch=arm64]" = /opt/homebrew/lib;
790790
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = /usr/local/lib;
791791
MACOSX_DEPLOYMENT_TARGET = 12.4;
792-
MARKETING_VERSION = 0.7;
792+
MARKETING_VERSION = 0.8;
793793
OTHER_LDFLAGS = "-all_load";
794794
USER_HEADER_SEARCH_PATHS = (
795795
"$(launchd_source_dir)/liblaunch",

README.md

Lines changed: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,16 @@
22

33
<img src="EnvPane.png" style="float:left"/>
44

5-
News: Release 0.7 is built for macOS 12 "Monterey" and up. It uses code-signed,
6-
universal binaries.
5+
6+
## News
7+
8+
Release 0.8 is built for macOS 12 "Monterey" and up. It uses code-signed,
9+
universal binaries that run on Intel and Apple Silicon processors. It is not
10+
notarized by Apple and therefore requires special treatment during
11+
[installation](#installation) in order to work around quarantine.
12+
13+
14+
## What is it?
715

816
EnvPane is a preference pane for macOS that lets you set environment variables
917
for all applications, both GUI and terminal. Not only does it restore support
@@ -12,7 +20,7 @@ publishes your changes to the environment immediately, without the need to log
1220
out and back in. This works for changes made by manually editing
1321
`~/.MacOSX/environment.plist` as well via the preference pane UI.
1422

15-
EnvPane 0.7 was tested under macOS 12 "Monterey" on Apple Silicon and Intel.
23+
EnvPane 0.8 was tested under macOS 12 "Monterey" on Apple Silicon and Intel.
1624

1725
EnvPane 0.6 was tested under OS X 10.09 "Mavericks", OS X 10.11 "El Capitan" and
1826
macOS Sierra (10.12). It should also work on 10.10 "Yosemite". Apple
@@ -24,23 +32,39 @@ deprecation and broken APIs.
2432
[new_launchd]: http://newosxbook.com/articles/jlaunchctl.html
2533
[issue_11]: https://github.com/hschmidt/EnvPane/issues/11
2634

27-
EnvPane does *not* work for setting the PATH environment variable. See the [FAQ
28-
on that topic](#why-cant-I-set-path-with-envpane).
35+
36+
## Caveats
37+
38+
EnvPane does *not* work for setting the PATH environment variable. See the
39+
[FAQ on that topic](#why-cant-I-set-path-with-envpane).
40+
41+
EnvPane cannot be used to set `DYLD_…` variables. This is restriction imposed
42+
by macOS, I assume for security reasons.
43+
44+
While EnvPane is code-signed, it is not yet notarized by Apple. Lack of
45+
notarization means that it will be quarantined when downloaded by a web
46+
browser. macOS refuses to run quarantined binaries, displaying a mildly
47+
misleading error message. A user [reports](#quarantine_workaround) that, on
48+
Ventura, right-clicking the preference pane in Finder and selecting _Open_
49+
overrides that restriction. I was not able to confirm that workaround for
50+
Monterey (I haven't upgraded to Ventura yet). For details, refer to #34.
51+
52+
[quarantine_workaround]: https://github.com/hschmidt/EnvPane/issues/34#issuecomment-1438247197
2953

3054

3155
## Download
3256

33-
For convenience, the code-signed binary of EnvPane can be
34-
[downloaded][envpane_release] from GitHub. Alternatively you might want to grab
35-
the [source][envpane_repo] and [build it yourself](#building-from-source).
3657

37-
[envpane_release]: https://github.com/hschmidt/EnvPane/releases/tag/releases%2F0.7
38-
[envpane_repo]: https://github.com/hschmidt/EnvPane
58+
The code-signed binary of EnvPane can be[downloaded][envpane_release] from
59+
GitHub. Be sure to read the [installation instructions].
3960

40-
<!-- break -->
61+
Alternatively you might want to grab the [source][envpane_repo] and [build it
62+
yourself](#building-from-source).
63+
64+
[envpane_release]: https://github.com/hschmidt/EnvPane/releases/tag/releases%2F0.8
65+
[envpane_repo]: https://github.com/hschmidt/EnvPane
4166

4267

43-
<a id="background"></a>
4468
## Background
4569

4670
Mac OS X releases prior to Mountain Lion (10.8) included support for
@@ -59,22 +83,31 @@ The agent reads `~/.MacOSX/environment.plist` and exports the environment
5983
variables from that file to the current user's `launchd` instance via the same
6084
API that is used by `launchctl setenv` and `launchctl unsetenv`.
6185

62-
TODO: Mention /etc/launchd.conf and ~/.launchd.conf
86+
TODO: Mention `/etc/launchd.conf` and `~/.launchd.conf`
6387

6488
[flashback]: http://support.apple.com/kb/TS4267?viewlocale=en_US
6589

6690

6791
## Requirements
6892

69-
macOS 12 "Monterey" or higher.
93+
macOS 12 "Monterey" or higher.
7094

7195
For release 0.6, Mac OS X 10.9 "Mavericks" or higher.'
7296

7397

7498
## Installation
7599

76-
1. Download [EnvPane.dmg][envpane_release]
77-
2. Open EnvPane.dmg, a Finder window opens
100+
### One liner
101+
102+
Run this command in _Terminal_ to download and install EnvPane in a single step.
103+
104+
`(cd ~/Library/PreferencePanes && rm -rf EnvPane.prefPane && curl -sL https://github.com/hschmidt/EnvPane/releases/download/releases%2F0.8/EnvPane-0.8.tar.bz2 | tar -xjf -)`
105+
106+
### Traditional installation
107+
108+
1. Download [EnvPane-0.8.dmg][envpane_release]
109+
2. Run `xattr -d com.apple.quarantine ~/Downloads/EnvPane-0.8.dmg` in Terminal
110+
2. Double-click the downloaded`EnvPane-0.8.dmg`. A Finder window opens
78111
3. Double-click the `EnvPane.pref-pane` file
79112
4. Choose _Install for this user only_
80113

@@ -145,6 +178,11 @@ removing the preference pane doesn't leave orphaned files on the system. The
145178

146179
## Changelog
147180

181+
182+
### v0.8
183+
184+
* Work around quarantine
185+
148186
### v0.7
149187

150188
* Code-signed with my Apple Developer ID

0 commit comments

Comments
 (0)