Smaky FOS on GNU/Linux & Window$
Fosfat: library and FUSE extension

Fosblup copyright Mathieu Schroeter, 2007
This image is licensed under a
Creative Commons License

Contents

topIntroduction

Fosfat is a library written in C for accessing in read-only to an Smaky formatted disk (compatible hard disk and floppy disk). A tool and a FUSE extension are available for read a Smaky FOS disk. For Window$, the FUSE extension will not exist.
It is a free software - it is licensed under the terms of the GNU General Public License (GNU/GPL) version 3. Fosfat is copyright (C) 2006-2008 Mathieu Schroeter.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

topRequirements

The following programs are required to build fosfat for GNU/Linux:
The following program is required to build fosfat for Window$:

topBuilding and Installation for GNU/Linux

Compile libfosfat, fosread, fosmount and smascii by running:
      ./configure
      make
      
This should produce three executables fosread and smascii (in ./tools/), fosmount (in ./fosmount/) and a library libfosfat.a/.so (in ./libfosfat/). No extra files need to be installed. You can change some options for configure, look ./configure --help for more informations.

If you want to install the fosread, fosmount and the smascii tools on your system, run :
      make install
      
And for only the library :
      make install-dev
      
The binaries are copied into their appropriate directories (/usr/local/bin and /usr/local/lib), and the header into /usr/local/include in this example. Change the --prefix for an other target directory.

topBuilding for Window$ 9x/NT

Compile libfosfat, fosread and smascii by running:
      make win32
      
This should produce two executables fosread and smascii (in ./tools/), and two libraries fosfat.dll (in ./libfosfat/), w32disk.dll (in ./libw32disk/). No extra files need to be installed. You can change some options for configure, look in the win32-gen.sh script for more informations.

topUsage

You can found a doxygen documentation of the library here.

Fosmount (only GNU/Linux)

The fosmount tool uses FUSE for mount the FOS in your tree.
        Usage: fosmount [options] device mountpoint

        -h --help             this help
        -v --version          version
        -a --harddisk         force an hard disk (default autodetect)
        -f --floppydisk       force a floppy disk (default autodetect)
        -l --fos-logger       that will turn on the FOS logger
        -d --fuse-debugger    that will turn on the FUSE debugger

        device                /dev/fd0 : floppy disk
                              /dev/sda : hard disk, etc
        mountpoint            for example, /mnt/smaky
        
Example:

Fosread (GNU/Linux & Window$)

The fosread tool can be used only from the console. It can be used with two modes. One for list all files in a directory, and the second for copy a file in a local directory.
        Usage: fosread [options] device mode [node] [path]

        -h --help             this help
        -v --version          version
        -a --harddisk         force an hard disk (default autodetect)
        -f --floppydisk       force a floppy disk (default autodetect)
        -l --fos-logger       that will turn on the FOS logger
        -u --undelete         enable the undelete mode, even deleted files will
                              be listed and sometimes restorable with 'get' mode.

        device                /dev/fd0 : floppy disk
                              /dev/sda : hard disk, etc
        mode
          list                list the content of a node
          get                 copy a file from the Smaky's disk in a local directory
        node                  the tree with the file (or folder) for 'get' or 'list'
                              example: foo/bar/toto.text
        path                  you can specify a path for save the file (with get mode)
        
Examples GNU/Linux:
Examples Window$:

Smascii

The smascii tool can be used for convert Smaky text file to Extended ASCII (ISO-8859-1).
        Usage: smascii smaky_file converted_file [--unix]

          smaky_file            the smaky text file
          converted_file        the file converted
          --unix                the Carriage Return (Old Mac) will be
                                converted to Line Feed (unix)
        
Example:

topDownload

The last release (Beta, 0.3.0), is available to http://download.gna.org/fosfat/
But use the trunk is better as long as no stable version is available.

Development Tree

The latest fosfat development tree can be grabbed using Subversion, a revision control system, similar in purpose to tools such as CVS, SCCS, and Arch. It is used to keep track of the changes made to a source tree and to help programmers combine and otherwise manipulate changes made by multiple people or at different times.

There are currently 2 ways of accessing the Subversion tree :
via command-line or (to just have a look to some changes on a specific file, for example) : web-svn

In order to access to Subversion via command line, create and enter a new directory and do the following (be sure that you have installed the SVN package) :
        * svn co http://svn.gna.org/svn/fosfat/trunk fosfat - To fetch all the files from the directory trunk.
        * svn update - To update your local copy of the Subversion, synchronizing with the server.
        

topMailing list

You can subscribing to Fosfat-commits list here.

topFeedback

The author of fosfat and this document, Mathieu Schroeter, can be contacted by e-mail.

Please send bug reports, suggestions, ideas, comments or patches to : fosfat-devel@gamesover.ch

topThanks

Many thanks to Pierre Arnaud for its help and the FOS's documentation
and to Gna! for the hosting!