Account Options>

  1. pavel@salsitasoft.com
Building Songbird Updated Aug 22, 2012, 8:54 AM
More
 Share
Projects‎ > ‎Songbird‎ > ‎

Building Songbird


Common

Prerequisities

  1. SVN version 1.7+. The general intent in Salsita is to migrate all Songbird svn checkouts to SVN 1.7+ to obtain single versioning metadirectory (.svn) per repository. It greatly simplifies dual svn/hg operation practiced recently and theoretical future complete migration to Mercurial. Hence the parts of building documentation regarding SVN installation are hackish beyond what the official Songbird/Mozilla documentation describes.
  2. Access rights (name and password) for the following Songbird repositories
    • (mandatory) https://svn.songbirdnest.com/client/trunk
    • (mandatory) https://svn.songbirdnest.com/vendor-binaries/trunk
    • (optional) https://svn.songbirdnest.com/vendor/trunk/private/platinum-upnp
    • (optional) https://svn.songbirdnest.com/songbird/tools/subversion

Pre-building

  1. Check out svn://svn.songbirdnest.com/client/trunk in your development location
  2. In the relative path of checkout .\dependencies (should be empty folder), check out svn://svn.songbirdnest.com/vendor-binaries/trunk/windows-i686-msvc8
  3. In checkout root, create file songbird.config and put the following minimal options
    • ac_add_options --enable-debug
    • ac_add_options --disable-tests
    • ac_add_options --disable-installer

Mac

Prerequisities

  1. SVN: install a package which provides version 1.7+ The one instaled by default will be most probably 1.6 at most, even for the newest MacOS releases. Make sure that the newer version is being preferred, by issuing a command "svn --version" on the command line
  2. MacOS X SDK 10.4. Installable with XCode 3.2.6. This is officially supported up to Mac OS X 10.6. On Lion you have to tweak a little bit:
    • # (OPTIONAL) Uninstall previously installed Xcode.
      sudo /Developer/Library/uninstall-devtool
      # Mount the installation disk.
      open xcode_3.2.6_and_ios_sdk_4.3.dmg
      # Dump configuration so that we can change it to include SDK 10.4u .
      installer -pkg '/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg' -showChoiceChangesXML > /tmp/XcodeChoice.xml
      # Now manually modify <string>TigerSupport</string> block in /tmp/XcodeChoice.xml to contain <integer>1</integer> .
      export COMMAND_LINE_INSTALL=1 # Necessary at Mac OS X Lion!
      # Modify system time to fit packages certificates. We also have to disable NTP, that may (and often does) break it in the middle.
      # If you are virtualising your Mac OS X and you have VMware Tools installed, you have to disable time sync with host machine or set the time back even on the host machine.
      # You can disable time sync by inserting tools.syncTime = "FALSE" into your .vmx file. Dunno if this requires restart of VM or not...
      sudo launchctl unload -w /System/Library/LaunchDaemons/org.ntp.ntpd.plist
      # Set year to 2008.
      sudo date 0613162708
      # Launch the installer, incorporate our modified configuration.
      sudo installer -pkg '/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg' -applyChoiceChangesXML /tmp/XcodeChoice.xml -target / -verbose -dumplog
      # Go for a coffee, pizza or something...
      # Start NTP daemon again, do some cleanup.
      sudo launchctl load -F /System/Library/LaunchDaemons/org.ntp.ntpd.plist
      hdiutil detach '/Volumes/Xcode and iOS SDK'
      rm /tmp/XcodeChoice.xml
      rm xcode_3.2.6_and_ios_sdk_4.3.dmg
      # Delete tools.syncTime = "FALSE" from your .vmx file.
  3. GNU-style "cp" command, that is providing a switch --parent (default MacOS BSD-style cp command does not)
    • Using Homebrew - brew install coreutils; export PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"
    • Using MacPorts - port install coreutils; export PATH="/opt/local/bin:$PATH" # Inserts gcp in the PATH, but you need cp! So link it or rename it...

Installation

  1. Just the common pre-building steps

Building

  1. open terminal window. Change directory to the folder where you checked out svn://svn.songbirdnest.com/client/trunk
  2. make -f songbird.mk clobber (basically will just delete ./compiled folder)
  3. make -f songbird.mk
  4. resulting binary is ./compiled/dist/Songbird.app/Contents/MacOS/songbird

Windows

Prerequisities

  1. SVN: In case of any 3rd party packages, you need such package which includes standalone svn.exe. So for TortoiseSVN, the newest applicable version is 1.7.6 (linked against SVN 1.7.4). Latest TortoiseSVN 1.7.7 does not have standalone svn.exe
  2. Latest Mozilla Build System but at least version 1.5.1
  3. Windows Driver Kit
  4. Windows Software Development Kit (SDK) for Windows 7 and .NET Framework 3.5 Service Pack 1

Installation

  1. Install Windows Driver Kit and Software Development Kit
  2. Install Mozilla Build System
  3. Restrict MSVC build to Windows SDK v6 by modifying file guess-msvc.bat in  %WHERE_YOU_INSTALLED_MOZBUILD%. Delete or comment out (REM) the section starting with
    • REG QUERY "%SDK7KEY%" /v InstallationFolder >nul 2>nul
  4. Install external SVN package and copy the content in it's bin/ folder over the files in %WHERE_YOU_INSTALLED_MOZBUILD%\svn-win32-1.6.3\bin. Check that namely svn.exe was rewritten.
  5. Apply the following Registry change (add keys) :
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library]
      "SearchPath"="%WHERE_YOU_INSTALLED_MOZBUILD%\svn-win32-1.6.3\bin"
  6. Common pre-building steps

Building

  1. In  %WHERE_YOU_INSTALLED_MOZBUILD% execute start-msvc8.bat
  2. Console appears which behaves like an Unix shell. Change directory to the folder where you checked out svn://svn.songbirdnest.com/client/trunk
    • Windows drive letters are represented as subfolders with a single letter, that is c:\songbird becomes /c/songbird
  3. make -f songbird.mk clobber (basically will just delete ./compiled folder)
  4. make -f songbird.mk
  5. resulting binary is ./compiled/dist/songbird.exe
Č
Comments
Pavel Zdenek
Comment
Cancel
You have no permission to add comments.