Skip to content

Commit

Permalink
Initial open source release
Browse files Browse the repository at this point in the history
Based on the code for the 4.5.2 release, with the serial number system
ripped out and some third party code (the Growl framework) that can be
obtained elsewhere removed.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
  • Loading branch information
wincent committed Feb 26, 2012
0 parents commit d98f2d4
Show file tree
Hide file tree
Showing 559 changed files with 205,804 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
@@ -0,0 +1,6 @@
index
com.wincent.buildtools.gitrev.h
*.temp
*.bak

*.lyx~
6 changes: 6 additions & 0 deletions .gitmodules
@@ -0,0 +1,6 @@
[submodule "buildtools"]
path = buildtools
url = git://git.wincent.com/buildtools.git
[submodule "WOPublic"]
path = WOPublic
url = git://git.wincent.com/WOPublic.git
22 changes: 22 additions & 0 deletions LICENSE.txt
@@ -0,0 +1,22 @@
Copyright 2002-2012 Wincent Colaiuta. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
55 changes: 55 additions & 0 deletions README.txt
@@ -0,0 +1,55 @@
Synergy
=======

The lightweight iTunes controller for Mac OS X
https://wincent.com/products/synergy/

Control iTunes from any application using hot keys, an always-available global
menu, or attractive, unobtrusive buttons in your menu bar. Get instant
feedback with transparent overlay windows. Enjoy "scrobbling" integration with
last.fm and cover art downloads from amazon.com.

About the open source release
-----------------------------

Synergy was originally released in November 2002, and over the years has
received many updates. Due to competing demands on my time, the release rate
slowed down as the years went on, and at the time of writing, the last release
was version 4.5.2, on February 1, 2011.

In March 2011 I started a new job building the world's largest platform for
collective action at Causes (http://www.causes.com/).

I've realized that this means that in the immediate future Synergy is unlikely
to get the attention from me that it deserves, yet people still use it and would
like to see development work to continue.

The simplest way to make that possible is to open source the project. This isn't
just a means to keep the project alive; I strongly believe that open source is
the right way to do software development and in the future it will be the only
way that seriously-taken software is developed.

The source code is now BSD licensed. The initial source code release is based
off the code that was used to build version 4.5.2, minus the serial number code
and third-party code (such as a local copy of the Growl framework) which I did
not want to distribute. I'm hoping this will be just the first of several such
open source releases that I can make in the near future.

Synergy will still be available for download and purchase on wincent.com. Maybe
in the future my circumstances will change and I'll be able to fully re-enter
the world of Mac OS X development, in which case I'd like to work on getting
Synergy into Apple's App Store.

In any case, here's the code, in all its shameful glory. This was the first time
I'd written a piece of software that went beyond a pet project. Looking back at
it now, I truly shudder at some of the ghastly code I wrote while I was learning
C, learning Objective-C, learning Apple's APIs, learning object-oriented
programming, design patterns etc, all at once. Some of this stuff, particularly
the files and methods that were written earlier on, is truly cringe-worthy and
would not look out of place on thedailywtf.com.

On the other hand, looking back on it makes me realize how much I've grown as a
developer over the last ten years. Its been an amazing ride.

Wincent Colaiuta
February 25, 2012
30 changes: 30 additions & 0 deletions Rakefile
@@ -0,0 +1,30 @@
require 'pathname'

def release_version
return @release_version if @release_version
version_file = Pathname.new('WOSynergy_Version.h').read
version_line = version_file.lines.find do |line|
line =~ /\A#define\s+WO_INFO_PLIST_VERSION\s+(.+)\s*\z/
end or raise "could not find version number"
@release_version = $~[1]
end

desc 'create a Git tag for the current build'
task :tag do
if release_version=~ /\+\z/
raise "refusing to tag intermediate (not official release) version " +
"(version number '#{release_version}' ends in '+')"
else
sh "./tag-release.sh #{release_version}"
end
end

desc 'upload the current build to Amazon S3'
task :upload do
sh 'aws put ' +
"s3.wincent.com/synergy/releases/synergy-#{release_version}.zip " +
"../../build/Release/synergy-#{release_version}.zip"
sh 'aws put ' +
"s3.wincent.com/synergy/releases/synergy-#{release_version}.zip?acl " +
'--public'
end
4 changes: 4 additions & 0 deletions Synergy.xcodeproj/.gitignore
@@ -0,0 +1,4 @@
*.mode1*
*.pbxuser
!default.pbxuser

0 comments on commit d98f2d4

Please sign in to comment.