marstall / shim

while at the Boston Globe, I wrote a browser-compatibility testing tool that lets you surf the same pages simultaneously on all of them.
775 stars 26 forks source link

OS X 10.7 Support #2

Open designerbrent opened 12 years ago

designerbrent commented 12 years ago

I saw your note in the README about support for 10.7. I'm wondering if you have any idea if and when this support might be coming.

Thanks! This looks like an amazing tool!

-Brent

erunion commented 12 years ago

FWIW, here's what happens when you try to install it on 10.7:

$ sudo ./setup.sh 
Password:
installing npm ...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7881  100  7881    0     0  20172      0 --:--:-- --:--:-- --:--:-- 49566
tar=/usr/bin/tar
version:
bsdtar 2.8.3 - libarchive 2.8.3
install npm@1.0
fetching: http://registry.npmjs.org/npm/-/npm-1.0.106.tgz
0.4.7
1.0.106
cleanup prefix=/usr/local
altprefix=/usr/local/Cellar/node/0.4.7

All clean!
/usr/local/bin/npm_g -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npm-g -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@1.0.106 /usr/local/lib/node_modules/npm 
It worked
installing node.js packages ...
socket.io@0.7.7 ./node_modules/socket.io 
├── policyfile@0.0.3
├── redis@0.6.0
└── socket.io-client@0.7.4
http-proxy@0.5.11 ./node_modules/http-proxy 
├── colors@0.6.0-1
└── optimist@0.2.8
ejs@0.4.3 ./node_modules/ejs 
ejs@0.4.3 ./node_modules/ejs 
/usr/local/bin/node-supervisor -> /usr/local/lib/node_modules/supervisor/lib/cli-wrapper.js
/usr/local/bin/supervisor -> /usr/local/lib/node_modules/supervisor/lib/cli-wrapper.js
supervisor@0.2.0 /usr/local/lib/node_modules/supervisor 
copying new.inet.ip flags to /etc/sysctl.conf to allow transparent-proxying ...
setting network interface privileges ...
Adding firewall rule to forward all port-80 WiFi passthrough traffic to localhost:3128 ...
ipfw: rule 2000: setsockopt(IP_FW_DEL): Invalid argument
net.inet.ip.forwarding: 0 -> 1
net.inet.ip.fw.enable: 1 -> 1
net.inet.ip.fw.verbose: 0 -> 1
sysctl: oid 'net.inet.ip.scopedroute' is read only
mjsweet commented 12 years ago

I tried to click a like button Brent!

cbowns commented 12 years ago

sshuttle (https://github.com/apenwarr/sshuttle) had this exact same problem on 10.7. apenwarr and co solved it with this commit, which is a bit hacky but fixes the problem for good: https://github.com/apenwarr/sshuttle/commit/4c1a505e37f6a0c59acfd347c290ab9d3258f6a7

n1313 commented 12 years ago

Confirming this problem with exactly same symthoms as jonursenbach posted. Is there any hope for us on 10.7? :)

cbowns commented 12 years ago

@n1313 You can manually apply the sshuttle fix with:

sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.Boot "Kernel Flags" "net.inet.ip.scopedroute=0”

then convert the plist to xml:

sudo plutil -convert xml1 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

After you’re done, confirm the change like this:

% sudo defaults read /Library/Preferences/SystemConfiguration/com.apple.Boot
{
    "Kernel Flags" = "net.inet.ip.scopedroute=0";
}

and make sure it’s in XML form (otherwise the kernel can’t read it at boot)

cat /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

then reboot. Then try installing shim again.

nobleskine commented 12 years ago

@cbowns I tried your solution since I'm on 10.7 but it didn't work out. After reboot, my "Kernel Flags" turned into "Kernel \n Flags" and installing the shim returned the same "sysctl: oid 'net.inet.ip.scopedroute' is read only".

Any help would be appreciated !

cbowns commented 12 years ago

@nobleskine Sounds weird. I’d be happy to help you get it working: my contact info is at http://cbowns.com/contact

cbowns commented 12 years ago

Ok, that script does bad things to your kernel plist (like nuking any other flags you may have set), and it doesn’t even work. This should fix it.