Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fairmount DVD mounting software for OS X, originally from Metakine
branch: master

This branch is 5 commits behind BoxOfSnoo:master

Failed to load latest commit information.
Fairmount.xcodeproj Bump version to 1.1.3
MainMenu.nib Clean up the pop-up window a bit too.
Packaging New machinery to build release + create a fancy .dmg file from comman…
Sparkle Add the "Sparkle/" subdir
Tools Changed tabs to whitepace, killed trailing whitepace, etc.
dsa_keys Add dsa_pub.pem file so things build.
.gitignore New machinery to build release + create a fancy .dmg file from comman…
CSSFileAccess.cpp Changed tabs to whitepace, killed trailing whitepace, etc.
CachedFileAccess.cpp Changed tabs to whitepace, killed trailing whitepace, etc.
Credits.rtf Remove a stray space.
Decryption.h Fix and clean up library search code and user prompting.
Decryption.m Changed tabs to whitepace, killed trailing whitepace, etc.
Fairmount.h Changed tabs to whitepace, killed trailing whitepace, etc.
Fairmount.mm Changed tabs to whitepace, killed trailing whitepace, etc.
FileAccess.cpp Changed tabs to whitepace, killed trailing whitepace, etc.
FileSize.c Changed tabs to whitepace, killed trailing whitepace, etc.
FileSize.h Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
HTTPServer.cpp Changed tabs to whitepace, killed trailing whitepace, etc.
HTTPServer.h Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
Help.html Changed tabs to whitepace, killed trailing whitepace, etc.
IFileAccess.h Changed tabs to whitepace, killed trailing whitepace, etc.
Info.plist Changed tabs to whitepace, killed trailing whitepace, etc.
LICENSE.txt Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
ListFiles.cpp Changed tabs to whitepace, killed trailing whitepace, etc.
ListFiles.h Changed tabs to whitepace, killed trailing whitepace, etc.
Overlay.h Changed tabs to whitepace, killed trailing whitepace, etc.
Overlay.m Changed tabs to whitepace, killed trailing whitepace, etc.
README.md note that you can use makerelease.sh to generate a release
TODO.txt Fix and clean up library search code and user prompting.
Types.h Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
dvd.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
eject.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount.icns Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame1.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame2.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame3.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame4.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame5.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame6.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame7.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fairmount_frame8.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fmprog1.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fmprog2.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fmprog3.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
fmprog4.png Initial commit of v1.1 from Metakine's latest DVDDecrypter download p…
makerelease.sh New machinery to build release + create a fancy .dmg file from comman…
openUp.c Changed tabs to whitepace, killed trailing whitepace, etc.
socketWrap.c Changed tabs to whitepace, killed trailing whitepace, etc.
socketWrap.h Changed tabs to whitepace, killed trailing whitepace, etc.

README.md

Fairmount

This is Fairmount, a tool which allows fair use of DVD content.

It is a program which mounts the contents of a DVD on a Mac OS X machine as though it was a normal file system, allowing the user to examine the contents.

It does not itself supply DVD reading code, but instead requires that a DVD library from videolan.org be installed separately.

Fairmount was originally developed by Metakine, but it appears to have vanished from their web site. However, it was released under the GPL, so others may continue to develop it.

Getting Binaries

For now, a zip file of the .app for OS X 10.6 and later (Intel only) is located at: https://github.com/pmetzger/Fairmount/downloads

You must also install the package found at: http://download.videolan.org/libdvdcss/last/macosx/libdvdcss.pkg -- this will place the file libdvdcss.2.dylib into /usr/lib/ where the program will find it.

If you don't install the library, the program will prompt you to do so.

[In the unlikely event you want to use with a different version of the library, the program first searches in ~/Library/Application\ Support/Fairmount/libdvdcss.dylib and then in ~/Library/Application\ Support/Fairmount/libdvdcss.2.dylib ]

The version number has been bumped to 1.1.2, but other than a few fixes (including finding the needed library in a new place), there's no new functionality.

Automatic updates are intentionally broken as there is not yet anywhere to update from.

How To Build

Fairmount uses the "Sparkle" framework for automatic updates. Said updates are currently broken, of course, but you can't build without it.

Therefore:

  1. Get the Sparkle framework from: http://sparkle.andymatuschak.org/ (Sources to Sparkle, if you want to find them, are at: https://github.com/andymatuschak/Sparkle but the binaries are all you need to build.)
  2. Place the Sparkle.framework file in the Sparkle/ directory in the checked out sources

Then tell XCode to build the project.

Alternatively, from the top level of the sources, you can run

sh makerelease.sh

and the script will build everything, including a release .dmg file.

Note: The sources contain a dsa_keys/dsa_pub.pem file, apparently needed by Sparkle. It was grabbed from an old Fairmount binary. This will need to get replaced in order for Sparkle to be aimed at a new source of updates, but for now it is there just so that things will build at all.

Source files overview

This overview is taken from the original Help.html file included with the project resources.

  • Types.h:
    Specifies some data types used throughout the code.
  • Decryption.[h,m]:
    Provides the dvdcss API. dvdcss is not included with Fairmount, it is rather loaded from the user's disk and must be separately installed.
  • Fairmount.[h,mm]:
    This contains the main classes for Fairmount, the Fairmount class which registers itself with the Disk Arbitration framework to receive notifications of disks appearing and disappearing, and the DVDServer class which do the heavywork and contains the web server object.
  • Overlay.[h,m]:
    Contains the code neccessary to show the progress's overlay Apple's style.
  • socketWrap.[h,c]:
    Provides a simple API to hide socket usage details.
  • FileSize.[h,c]:
    Function that provides the byte size of block devices.
  • ListFiles.[h,cpp]:
    Provides the file's list (size, start and end) of the ISO9660 filesystem of the dvd. Used by CSSFileAccess to ensure decryption is only applied on VOB files.
  • HTTPServer.[h,cpp]:
    A quite minimal web server able to serve large files.
  • IFileAccess.h:
    Provides an interface to all data access done by the web server. By using this interfaces, it is easy to test different methods of accessing data.
  • FileAccess.cpp:
    A dumb file access module used for debugging purpose.
  • CSSFileAccess.cpp:
    This module does the decryption on the VOB files, and slices requests on VOB boundaries.
  • CachedFileAccess.cpp:
    This module works on top of another to provide threaded read-ahead cache.
Something went wrong with that request. Please try again.