Browse files

Update and rename README to

Complete rewrite refecting recent CMake changes.
  • Loading branch information...
1 parent b39ab2c commit 0f7f375b91a1cbe4b0bc5687e0a090421c05e9df @alamaison committed Jan 7, 2016
Showing with 76 additions and 136 deletions.
  1. +0 −136 README
  2. +76 −0
@@ -1,136 +0,0 @@
-What is Swish?
- Swish is a plugin for Microsoft Windows Explorer that integrates access to
- remote files via SSH/SFTP.
- Swish is 'alpha' status which means it is missing some features and some
- bits are still a little rough around the edges. We're getting there, though
- and 'beta' status is not far away.
- As well as management tasks such as renaming and deleting files
- on the remote server users can drag and drop the contents of files
- and folders from the remote server to the local filesystem and double-click
- to open files in the appropriate program.
-Supported Operating Systems:
- Windows 8 (occasionally test)
- Windows 7 (most tested)
- Windows Vista (regularly tested)
- Windows XP (regularly tested)
- Windows 2000 (regularly tested)
- Windows 98/Me support is on hold for the time being - as of version
- the backend DLL seems to have problem (maybe related to MSVCRT versions).
- Unfortunately, Windows 95 and NT 4 are not immediately supported. This is
- because the C runtime used when compiling with Visual Studio 2005 is
- no longer compatible with their API. There are a few ways you can work round
- this if you wish:
- - Compile Swish using Visual Studio 2005. You may have to fix the code to
- allow this; I've never tried it.
- - Make *all* the projects statically link to the runtime library (/MT).
- In addition you will have to use a version of OpenSSL similarly linked
- so you will have to compile your own. The instructions that come with
- OpenSSL make it clear how to do this. Again, I haven't tried this myself
- so it might not work.
-Requirements to run:
- Internet Explorer 5.5 or greater
- (may work with 5.01 but required SHRegGetPath() function seems broken).
- For Windows 9x, the Microsoft Layer for Unicode (MSLU, aka Unicows)
- 4F0D-80A4-2A7EEAEE17E2&displaylang=en.
-Requirements to build:
- The easiest way to set everything up is to run the prereqs.bat script from
- the build/ directory. It will fetch all the dependencies except Visual
- Studio, the Windows SDK, Boost and Wix. These you must install yourself
- from the links below.
- Visual C++ 2005
- Express edition is unlikely to work but feel free to try.
- If building on Windows Vista or later you will need two updates:
- - VS 2005 SP1:
- - VS 2005 SP1: Update for Windows Vista
- A recent version of the Windows SDK
- (
- The latest version requires an hotfix to Visual Studio 2005:
- Comet
- A modern C++ template library for COM.
- WTL 8 which can be obtained from Microsoft or through SourceForge
- Microsoft Permissive Licence:
- details.aspx?familyid=E5BA5BA4-6E6B-462A-B24C-61115E846F0C
- Common Public Licence:
- Boost
- You can get an installer from BoostPro Computing:
- However, for a 64-bit build
- of Swish you will have to build Boost yourself from source. The
- build/makeboost.bat script can help with this. For more information
- see
- Currently Boost 1.45 is the tested version.
- Boost.Locale
- Candidate boost library handling internationalisation.
- Wix 3 with Votive
- Not required to build Swish itself but needed if you want to build
- the installer.
- For the Provider backend:
- - libssh2
- - OpenSSL
- - zlib
- The directories to put the sourcecode for these dependencies in should
- already exist in the thirdparty/ directory.
- libssh2 can be obtained from Swish usually requires
- the latest snapshot. You can get OpenSSL from and
- compile it yourself but a much easier option is to download the Swish
- pre-packaged binary with just the stuff needed for Swish:
- zlib binaries are available at
-Requirements for testing:
- Some old unit tests (not enabled by default) require CppUnit. The others
- just use Boost.Test.
- The tests in projects ending with `-network` need a remote host available
- to connect to over SSH. Swish assumes this is unix-based and that the test
- user account has a home directory named /home/username.
- Environment variables:
- CPPUNITDIR: The location of the CppUnit files.
- TEST_HOST_NAME: The name of the remote testing host.
- TEST_USER_NAME: The user name of the SSH account on the remote host.
- TEST_HOST_PORT: The port on the remote host that SSH is listening on
- (optional - defaults to 22 if not set).
- TEST_PASSWORD: The password to use to connect to the remote host if
- required.
- If you are going to run the tests I **STRONGLY** recommend using a separate
- user account for them as they create and delete files and, being tests, have
- the potential to invoke disastrous code. Protect yourself from them!
- This product includes software developed by the OpenSSL Project for use in
- the OpenSSL Toolkit (
- This product includes cryptographic software written by Eric Young
- (
-Building on Vista and later:
- When building on Windows Vista, make sure you are running Visual
- Studio as an Administrator. Otherwise it can't register the components
- and later components that depend on earlier ones will fail to build.
- The architecture of Swish is divided into a back-end and a front-end. The
- former deals with the SFTP connection to remote hosts while the latter
- is concerned with displaying the results to the user and handling
- interaction.
- The current Swish backend is based on libssh2 (
- While the eventual aim is to offer a choice of back-end implementations
- with different capabilities, this is currently the only one.
@@ -0,0 +1,76 @@
+What is Swish?
+Swish is a plugin for Microsoft Windows Explorer that adds support for SFTP.
+If you've used Explorer's built-in FTP support, Swish is that but for SFTP
+over SSH.
+Supported Operating Systems
+ * Windows 8 (most tested)
+ * Windows 7 (occasionally tested)
+ * Windows Vista (rarely tested)
+Swish may also work on Windows XP, but we haven't tested that in a while.
+Binary installers are [on our website](
+Getting involved
+We welcome patches to help improve Swish.
+Swish fetches almost all its dependencies when you configure it with [CMake].
+That magic happens thanks to the [Hunter package manager]. However, you will
+need Perl installed. [Strawberry Perl] is good, and available on [Chocolatey].
+You'll also need a compiler (obviously), a recent version of the Windows SDK
+and CMake.
+[Hunter package manager]:
+[Strawberry Perl]:
+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
+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 <>.
+If you modify this Program, or any covered work, by linking or
+combining it with the OpenSSL project's OpenSSL library (or a modified
+version of that library), containing parts covered by the terms of the
+OpenSSL or SSLeay licenses, the licensors of this Program grant you
+additional permission to convey the resulting work.
+### Why have an exception for OpenSSL?
+The [OpenSSL] library is incompatible with the GPL license because it
+contains an advertising clause. However lots of useful, open source
+software (including our own projects) need to use it and currently the
+alternatives aren't quite up to scratch. As we want these projects to
+be able to reuse Washer, we have added this exception to the GPL - a
+common technique used by other projects such as [wget].
+If [GnuTLS] improves to the point where OpenSSL is no longer
+necessary, we may remove this exception.

0 comments on commit 0f7f375

Please sign in to comment.