EldoS | Feel safer!

Software components for data protection, secure storage and transfer

mingw Development Environment

Also by EldoS: CallbackFilter
A component to monitor and control disk activity, track file and directory operations (create, read, write, rename etc.), alter file data, encrypt files, create virtual files.
#18734
Posted: 01/16/2012 04:05:17
by Infinit  (Basic support level)
Joined: 01/16/2012
Posts: 4
Hi,

we are considering using CBFS for porting our file system onto Windows. However we would like to know if a mingw32 development environment is provided or if it
will be easy enough to develop from Linux with CBFS via mingw.

We have done that in the past with Dokan and we would like to do it again with
CBFS.

Thanks a lot for your time.
#18735
Posted: 01/16/2012 04:35:11
by Eugene Mayevski (EldoS Corp.)

Unfortunately we don't have any experience with mingw and I can hardly understand what you are asking about.

If you need user-mode libraries compiled for mingw, this (a) requires a license, as source code of user-mode APIs is provided only to registered users (regular license is enough), and (b) might be not possible due to some VS-specific language constructs.

Maybe we can test such compatibility and even provide a precompiled library if you give us more details about what needs to be done (eg. I don't understand how you can do development involving Windows system components on Linux).


Sincerely yours
Eugene Mayevski
#18736
Posted: 01/16/2012 05:13:42
by Infinit  (Basic support level)
Joined: 01/16/2012
Posts: 4
Thanks for your quick response.

Here is an example of such a Archlinux package setting up the Dokan files for mingw (Linux):

https://aur.archlinux.org/packages.php?ID=52544

The files include some system-specific DLLs such as:

System.dll
dokan.dll
dokan.sys

But also the Dokan files such as:

dokanctl.exe
dokan.h
dokan.lib
mounter.exe

With such files, mingw can compile the Dokan sample (mirror)
from Linux. The generated executable can then be run on
Windows.

If it is possible to get the same kind of pre-compiled files
for CBFS (which I assume you can provide), everything should
work as expected. What do you think?

Thanks again.
#18737
Posted: 01/16/2012 05:24:36
by Eugene Mayevski (EldoS Corp.)

Well, I don't know how they built this stuff. What is system.dll - is it Dokan stock file or it's a custom build for MinGW? It's also not clear, how dokan.lib was compiled. As I understand it, it's not a stock distribution package of Dokan.


Sincerely yours
Eugene Mayevski
#18739
Posted: 01/16/2012 06:50:04
by Infinit  (Basic support level)
Joined: 01/16/2012
Posts: 4
All the files have been compiled on Windows (with the WDK): there is no mingw-specific stuff in there.

It is pretty simple to get these files on Linux: download the Dokan installer and extract it to get the files:

Code
  $> wget http://dokan-dev.net/wp-content/uploads/DokanInstall_0.6.0.exe
  [...]
  $> 7z x -y ./DokanInstall_0.6.0.exe
7-Zip 9.20  Copyright © 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Processing archive: ./DokanInstall_0.6.0.exe

Extracting  $PLUGINSDIR/System.dll
Extracting  $SHELL[17]/Dokan/DokanLibrary/readme.txt
Extracting  $SHELL[17]/Dokan/DokanLibrary/readme.ja.txt
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokan.h
Extracting  $SHELL[17]/Dokan/DokanLibrary/license.gpl.txt
Extracting  $SHELL[17]/Dokan/DokanLibrary/license.lgpl.txt
Extracting  $SHELL[17]/Dokan/DokanLibrary/license.mit.txt
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokan.lib
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokanctl.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/mounter.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/makefile
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/mirror.c
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/sources
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/mirror.exe
Extracting  $SYSDIR/dokan.dll
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokan.lib
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokanctl.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/mounter.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/mirror.exe
Extracting  $SYSDIR/dokan.dll
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokan.lib
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokanctl.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/mounter.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/mirror.exe
Extracting  $SYSDIR/dokan.dll
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokan.lib
Extracting  $SHELL[17]/Dokan/DokanLibrary/dokanctl.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/mounter.exe
Extracting  $SHELL[17]/Dokan/DokanLibrary/sample/mirror/mirror.exe
Extracting  $SYSDIR/dokan.dll
Extracting  $SYSDIR/drivers/dokan.sys
Extracting  $SYSDIR/drivers/dokan.sys
Extracting  $SYSDIR/drivers/dokan.sys
Extracting  $SYSDIR/drivers/dokan.sys
Extracting  $SYSDIR/drivers/dokan.sys
Extracting  $SYSDIR/drivers/dokan.sys
Extracting  $SYSDIR/drivers/dokan.sys
  $>


Just place:

1) dokan.h in /usr/i486-mingw32/include/
2) dokan.sys in /usr/i486-mingw32/bin/
3) dokan.lib and dokan.dll in /usr/i486-mingw32/lib/

Note that system.dll is not even required.

That's it, you can compile Dokan's mirror sample for instance.
#18757
Posted: 01/17/2012 09:46:21
by Infinit  (Basic support level)
Joined: 01/16/2012
Posts: 4
Sorry to bother you again but I would need more information to decide
whether to buy a CBFS licence or not. The free version of CBFS comes
with the necessary authentication stuff which I assume downloads the
DLLs etc.

This is not enough for me to guess what is provided. Could you please
tell me more? I suppose you provide DLLs and header files?

Thanks a lot for your time.
#18758
Posted: 01/17/2012 10:12:53
by Eugene Mayevski (EldoS Corp.)

I am sorry for the delay caused by failure of third-party hardware.

Let's start from the end. There's no "free version of CBFS". The evaluation package is offered for downloading and testing. To develop and deploy software which uses CBFS one needs to purchase the license.

The evaluation version includes precompiled .lib files (.a in linux terms) and header files for user-mode API (and of course precompiled setup packages with drivers). When one purchases a license for CBFS, he gets the package which includes above mentioned files AND the source code of all user-mode APIs (driver source code is provided only when the license "with source code" is purchased). The source code of user-mode APIs lets you compile it for needed version of C++ compiler and against required libraries.

Right now we can not guarantee that API's source code can be compiled for mingw. IF mingw can consume .lib files generated for CBFS, then there are no problems - you take existing .lib files and use them. IF recompilation is needed, then we would need to check if it's possible or some changes are needed in the source code. We will check this tomorrow and give you a definite answer.


Sincerely yours
Eugene Mayevski
#18998
Posted: 02/10/2012 08:12:29
by Dan Greenfield (Basic support level)
Joined: 02/10/2012
Posts: 3

We're currently evaluating CBFS for our project.

Our code-base uses C99 features, and due to lack of C99 support in the latest Visual Studio C++, rather than converting all our existing code, we were hoping to use a compliant compiler like MinGW's g++.

We noticed that there are MinGW libraries available and we have started trying to use them, but are having difficulty getting it to work. The sample C++ files do not compile under MinGW, so we do not have a baseline to establish if the problem is on our end or if the MinGW library itself has a problems.

Do you know if anyone has successfully mounted and used CBFS using the MinGW libraries?

Thank you
Also by EldoS: MsgConnect
Cross-platform protocol-independent communication framework for building peer-to-peer and client-server applications and middleware components.

Reply

Statistics

Topic viewed 2573 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!