public
Description: Block ads in Safari
Homepage: http://burgersoftware.com/safariadblock
Clone URL: git://github.com/martoche/safariadblock.git
Martin Ottenwaelter (author)
Thu Aug 27 09:51:35 -0700 2009
commit  435135f70628d5a39b99f2e2fa9648aeab37f87a
tree    a36396d934edf858c51fb457b67da52c9b6999f5
parent  259e847791aa15b92a66ac5d7db05028590b184c
name age message
file .gitignore Loading commit data...
file COPYING Mon Mar 16 07:20:05 -0700 2009 GPL license [Martin Ottenwaelter]
directory Installer/ Mon Mar 16 07:03:49 -0700 2009 Initial commit, version 0.4.0 RC1 [Martin Ottenwaelter]
file README Mon Mar 16 07:13:34 -0700 2009 Fixed README [Martin Ottenwaelter]
directory Resources/
directory Safari AdBlock.xcodeproj/
directory Scripts/ Mon Mar 16 07:03:49 -0700 2009 Initial commit, version 0.4.0 RC1 [Martin Ottenwaelter]
directory Sources/
file THANKS Mon Mar 16 07:28:42 -0700 2009 THANKS [Martin Ottenwaelter]
directory Third-party/
README
Safari AdBlock
http://burgersoftware.com/safariadblock


INTRODUCTION
==================

Safari AdBlock blocks ads in Safari.
It works as an InputManager to inject code in Safari and uses the Adblock Plus <http://adblockplus.org> filters.



BUILD INSTRUCTIONS
==================

The following command

  sudo xcodebuild install

builds Safari AdBlock and produces an installer located at

  build/Release/Safari AdBlock x.x.x.pkg
  

Alternatively, you can open the Xcode project "Safari AdBlock.xcodeproj" and build it from within Xcode. Note that this 
method will not produce the installer.



FRAMEWORKS
==================

If you want to build yourself the third-party frameworks, you need to change the dynamic shared library install names 
recorded in the Mach-O binary. A quick an easy way to do it is to first build the framework without altering the build 
settings and then work on the executable file. We will take Sparkle as an example.
Start by doing
  
  otool -L Sparkle.framework/Sparkle
  
The output should be something like

  @executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle (compatibility version 1.5.0, current version 
  1.5.0)
  ...
  
What we need to do is change @"executable_path" to "@loader_path" so that when Safari AdBlock is loaded, it looks for 
the framework inside its bundle and not inside Safari's bundle. It is done with the command

  install_name_tool -id "@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle" Sparkle.framework/Sparkle

Finally, verify that it worked:

  otool -L Sparkle.framework/Sparkle

now outputs

  @loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle (compatibility version 1.5.0, current version 1.5.0)
  ...
  ...