Rules and qualifications

What is the “S-Prize?”

The Apple IIgs computer has support for LocalTalk networking built-in. This, paired with the AppleShare protocol provided by the Apple IIgs system software, let the IIgs connect to Mac OS based servers for many years, until the AFP protocol became incompatible due to progress in its design and implementation. Today, SMB is the default file sharing protocol for the Mac.

It has been most of a decade since the last macOS shipped with a file sharing server that the Apple IIgs could connect to. While Netatalk makes it technically feasible to connect the IIgs to Linux and other platforms, it’s not always a simple task. While Ivan Drucker’s A2SERVER makes it fairly easy to set up Netatalk, it’s an added step and requires a Linux system or virtual machine.

The Apple IIgs needs support for connecting to modern file sharing servers without resorting to compatibility hacks for older services like Netatalk.

That’s where the S-Prize comes in. This is a cash award being offered for the creation and public release of an SMB file system for Apple IIgs System 6.0.1.

Why SMB?

SMB2 is specified for the S-Prize for several reasons:

  • The specification is public.
  • There are reference implementations easily available.
  • Most importantly, it’s broadly compatible.

SMB is the default file sharing system for Windows, and has been supported by macOS for years. Since it is supported by all the major platforms (Windows, macOS, and Linux), as well as many others. This makes it uniquely suited to cover the broadest number of Apple II users as easily as possible.

There are other file server protocols available, such as NFS or WebDAV, for example, but these are not as widely compatible, and often require additional packages or configuration beyond the default. Their support is sometimes less easy to configure, and is often less reliable.

These are some of the reasons why SMB was selected as the required target file sharing service for the “S-Prize”.

What is the prize?

Eric Shepherd (former owner/operator of Syndicomm and long-time Apple II developer) was required under contract to set aside a small percentage of certain sales of Apple II products for an “Apple II development fund.” This fund ended up with $350 in it. Shepherd is adding $150 of his own money to bring the prize to $500.

Once a candidate SMB implementation has been accepted by the organizing committee, the $500 will be sent to the winner by PayPal, Apple Cash, or personal check.

The prize is an “all or nothing” offering. One participating party will claim the entire prize if their SMB file system passes the testing process established by the administrators of the prize.

Prize administration

Shepherd plus at least two other well-known members of the Apple II community will be selected to administrate the prize. These people will determine if the conditions of the prize have been met. They will not be paid to do so, and will not be eligible to claim the prize or any portion thereof.

A formal test process will be established by this committee, and they will together examine the candidate based on their process. These tests will assure the committee as well as the general public that the software functions properly and reliably.

Most likely, the functionality of the software will be compared against how the AppleShare FST works as a baseline.

Requirements to claim the prize

To claim the “S-Prize”, you need to meet these requirements, in addition to passing the functional and reliability tests performed by the administrators. Note that these requirements may change as additional details of the Prize program are sorted out! Be sure to check back with the site to watch for any changes; changes to these requirements will always be announced on this site’s blog, as well as added to this page.

For the purposes of these requirements, the terms “SMB file system”, “file system”, and “SMB support” are all intended to mean the same, entire collection of software required to implement support for accessing SMB2 file shares from the Apple IIgs.

License and source code

  1. The entire software package needed to support the file system and its connection (including all FST/driver/init/CDev/desk accessory/configuration app) must be released under an open-source license that allows for re-use of the code, so that if the original author vanishes for any reason, the code can be picked up and maintained by others without the author’s direct say-so at the time that occurs. If you use code from an existing SMB package, you will likely need to adopt its license. Otherwise, you may consider any of these licenses as examples:
    • MIT/BSD/Apache (permissive licenses)
    • MPL/LGPL/GPL (copyleft licenses)
  2. The file system must not include code that cannot be legally distributed under the open license under which the file system is distributed; as a specific example, it may not include replacements for standard system software components unless those components are developed without use of copyrighted source material (such as non open-sourced Apple II system software source files).
  3. The code must be written using compilers and tools that are generally available to the public (ORCA/M and ORCA/C; Merlin 8/16; MPW IIgs Assembler; etc). Using obscure tools makes it hard to share code.
  4. The code must be readable, in that it must either be very self-descriptive, or well-commented. Use of JavaDoc, Doxygen, or HeaderDoc style comments is encouraged but not mandatory.

Compatibility

  1. It must work installed onto Apple IIgs System 6.0.1 as a minimum; if it works on older versions, that’s great, but it must not require one of the unofficial releases such as 6.0.2 or later.
  2. The SMB file system must work on both Apple IIgs ROM 01 and ROM 3 systems.
  3. It may use Marinetti for its network connectivity, but doesn’t have to. However, its use may not interfere with Marinetti if both are installed. Software that relies on Marinetti must still work (even if your software replaces Marinetti to do it).
  4. The SMB file system must be stand-alone; that is, it must not require additional software to be installed beyond Marinetti if it uses Marinetti.
  5. It must not require custom hardware (that is, hardware whose primary purpose is expressly intended to support implementing SMB file sharing); for networking, it must be compatible with one or more of the existing publicly-available network cards, and preferably both. If it only works with one, it must be the Uthernet card, as its availability is better.
  6. The SMB file system doesn’t have to work with any particular minimum amount of memory (in particular, it’s understood that it may require more memory than the minimum required by System 6.0.1). However, it must not require more than a 4 MB memory card be installed.
  7. It must not require installing extra or custom software or hardware on the computer to which you’re connecting, or require special routing hardware. The Apple IIgs must function as a standard peer on the network, just like connecting a Mac or Windows PC to the file share.
  8. The SMB file system must be compatible with a standard, physical Apple IIgs. It must not require an emulator, customized computer, or the like.
  9. The SMB file system must not override or prevent the functioning of any standard parts of the system software (with the exception of AppleTalk; see #12 below).
  10. The SMB file system must be stable and able to pass reasonable functional and usability testing; the details of this testing will be provided as soon as possible.
  11. The SMB file system must not interfere with the standard functioning of applications; anything that works with AppleShare FST in use should work with the SMB file system.
  12. The SMB file system does not need to be mutually-compatible with AppleTalk; that is, it is not required that AppleTalk be able to function while the SMB file system is enabled (asking a stock GS to manage to stay connected to both at once could be tricky). It would be great if you pull it off, but it’s not required.
  13. The SMB file system support must work similarly to the AppleShare file system on the Apple IIgs. That is, it must be implemented with an FST component (or work as if it is, at least), so that it can be used from all GS/OS applications that work with AppleShare volumes.
  14. If the file system requires replacing any standard system software components, it must do so without compromising standard functionality of that component.
  15. Performance must be usable in a real-world setting.

User interaction/interface

  1. The implementation must be as a file system style interface that can work with all existing applications, such as those using Standard File dialogs to open and save files.
  2. There must be appropriate user interface for selecting servers and share points to connect to, entering login credentials, and so forth.
  3. There must be user interface for any other configuration of the file system and its settings.
  4. There must be appropriate user interface for disconnecting from individual sharepoints and servers.

Networking/connectivity

  1. To claim the prize, your SMB2 file system must pass compatibility tests with: Windows 11, Windows 10, macOS 11.0 through 15.0, and the latest LTS version of at least two major Linux distributions. NOTE: The list of target server OS compatibility versions will change over time, as versions come and go, so keep an eye on this list.
  2. Supporting SMB1 is not required, but not discouraged (although you probably don’t want the added work).
  3. Since SMB2 uses Unicode, some form of translation between Unicode and MacRoman ASCII will be needed; this will by necessity need to be lossy (although the smarter your lossy algorithm the better!), and that’s understood.
  4. It may be implemented as multiple components (FST/driver(s)/extensions/etc.).
  5. It must be able to connect to arbitrary SMB servers on both LAN and WAN, both password-protected and open.
  6. Support for encryption is not necessary. The bare minimum for success in terms of authentication is SMB over TCP with basic user ID/password authentication. Anything beyond that is gravy (and could be added later, if your code is written well).
  7. The SMB file system must support files both with and without resource forks (and of course files with only resource forks), must maintain Apple II file type and auxtype, and must also maintain Macintosh type and creator codes. Date and time stamps must also be preserved.
  8. All levels of the folder hierarchy of the server must be accessible, within the limits of the maximum supported filename and pathname lengths in GS/OS.
  9. The file system must be both read and write capable.
  10. Access privileges must be obeyed; if the user is only allowed read-only access, that’s all they should have, and if the user has write privileges, they should be able to write to the share.
  11. Multiple share points per server must be supported.
  12. It is not necessary to be able to serve SMB. Only client access is required.
  13. Only the parts of SMB related to file systems need to be supported.

Questions?

If you have questions about the S-Prize, contact us.