From 8c86089431204a9a014988c21d01660e7aab51a7 Mon Sep 17 00:00:00 2001 From: Jason Masker Date: Tue, 24 May 2016 11:00:52 -0400 Subject: [PATCH] Add wireshark-chmodbpf (#21318) --- Casks/wireshark-chmodbpf.rb | 89 +++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Casks/wireshark-chmodbpf.rb diff --git a/Casks/wireshark-chmodbpf.rb b/Casks/wireshark-chmodbpf.rb new file mode 100644 index 0000000000000..4def8fa786c6b --- /dev/null +++ b/Casks/wireshark-chmodbpf.rb @@ -0,0 +1,89 @@ +cask 'wireshark-chmodbpf' do + version '2.0.3' + sha256 'a64dc77117a4408b48235297215032017e77822885ce3e19cd1065bfbea0ae57' + + url "https://www.wireshark.org/download/osx/Wireshark%20#{version}%20Intel%2064.dmg" + name 'Wireshark-ChmodBPF' + homepage 'https://www.wireshark.org/' + license :gpl + + installer script: '/usr/sbin/installer', + args: [ + '-applyChoiceChangesXML', + "#{staged_path}/chmodbpf_only.xml", + '-package', + "#{staged_path}/Wireshark #{version} Intel 64.pkg", + '-target', + '/', + ] + + preflight do + # shim script (https://github.com/caskroom/homebrew-cask/pull/21318) + FileUtils.touch "#{staged_path}/chmodbpf_only.xml" + chmodbpf_only = File.open "#{staged_path}/chmodbpf_only.xml", 'w' + chmodbpf_only.puts '' + chmodbpf_only.puts '' + chmodbpf_only.puts '' + chmodbpf_only.puts '' + chmodbpf_only.puts ' ' + chmodbpf_only.puts ' attributeSetting' + chmodbpf_only.puts ' 0' + chmodbpf_only.puts ' choiceAttribute' + chmodbpf_only.puts ' selected' + chmodbpf_only.puts ' choiceIdentifier' + chmodbpf_only.puts ' wireshark' + chmodbpf_only.puts ' ' + chmodbpf_only.puts ' ' + chmodbpf_only.puts ' attributeSetting' + chmodbpf_only.puts ' 0' + chmodbpf_only.puts ' choiceAttribute' + chmodbpf_only.puts ' selected' + chmodbpf_only.puts ' choiceIdentifier' + chmodbpf_only.puts ' cli' + chmodbpf_only.puts ' ' + chmodbpf_only.puts '' + chmodbpf_only.puts '' + chmodbpf_only.close + end + + postflight do + if Process.euid == 0 + ohai 'Note:' + puts <<-EOS.undent + You executed 'brew cask' as the superuser. + + You must manually add users to group 'access_bpf' in order to use Wireshark + EOS + else + system '/usr/bin/sudo', '-E', '--', + '/usr/sbin/dseditgroup', '-o', 'edit', '-a', Etc.getpwuid(Process.euid).name, '-t', 'user', '--', 'access_bpf' + end + end + + uninstall script: { + executable: '/usr/sbin/dseditgroup', + args: ['-o', 'delete', 'access_bpf'], + }, + pkgutil: 'org.wireshark.ChmodBPF.pkg', + delete: [ + '/Library/LaunchDaemons/org.wireshark.ChmodBPF.plist', + ], + rmdir: [ + '/Library/Application Support/Wireshark/ChmodBPF', + '/Library/Application Support/Wireshark', + ] + + caveats <<-EOS.undent + This cask will install only the ChmodBPF package from the current Wireshark + stable install package. + An access_bpf group will be created and its members allowed access to BPF + devices at boot to allow unpriviledged packet captures. + This cask is not required if installing the Wireshark cask. It is meant to + support Wireshark installed from homebrew or other cases where unpriviledged + access to OS X packet capture devices is desired without installing the binary + distribution of Wireshark. + + The user account used to install this cask will be added to the access_bpf + group automatically. + EOS +end