-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Windows via Callback Filesystem? #39
Comments
I can not even compile the simplest sample that is provided by this package :(
I would not hold my breath on this one! The CBFS is a strict commercial product and, from what I can tell, has no intentions what so ever of supporting the Open Source community. Just the fact that the company behind this refuses me to even use a gmail account to request for the evaluation license makes me slightly uncomfortable to say the least. |
EDIT: anyone reading this, please use Thanks for taking interest! I kinda expected this, but there's no harm in asking. I got the driver to compile by:
And the sample:
I tried to compile
EDIT: yeah, I agree, this is kinda hacky.. Their MinGW support isn't the best :/ |
Just remove the check for You seem to have got a lot of things working though. Feel free to continue your efforts :) I will assist in any way I can but I do not know how much time I will be able to spend on building this myself. Maybe if you succeed I can follow your "step by step". What I need to focus on is to make sure that any patches required to rar2fs to make this work is suitable for upstream. Also remeber you need the UnRAR source library. The lack of a POSIX compliant thread library is going to be an issue here :( |
I managed to build the UnRAR source library after some struggle. The gcc in MinGW seems to enable a few more warnings by default than what seems to be standard. For that reason remove the Makefile needs to be slightly modified:
The source code (.cpp files) need several changes, preferably using
It does not build completely clean, but almost. Having problems though with
I might have missed something, but this is it for today! |
It is the use of the |
Hello, this could be a waste of time, but have you looked at using Dokan at all? https://web.archive.org/web/20150511010630/http://dokan-dev.net/en/, https://github.com/Maxhy/dokany? It is an open source project and apparently has a FUSE API, but I haven’t investigated it closely. |
@hasse69 thanks for the pointers. Yeah, I had to run after reaching the version check. I'll try to catch up with your work now :) You can get Windows uses |
@vadmium Do you have any links to the FUSE API? This seems to do the
EDIT: be sure to issue |
Patching away those rar checks, I get this:
The log says:
I wonder where to find those on MinGW.. |
From the scandir(3) man page:
So either MinGW does not provide it, or it is called something else. |
Hmm, I just moved to Here's my progress with
EDIT: |
You still need the complete source of UnRAR to build rar2fs. If you install libunrar through pacman make sure you download a matching version of the source. |
Yeah, well, to think about it, it won't work..
|
I still get issues with _stat64 when compiling the driver :( |
Are you using the already patched files? Make sure you revert any changes done to |
And here we are..
|
I use the 32-bit toolchain, that is probably why. I am on a 32-bit Windows 8 platform. |
Oh, I'm on 64-bit Windows 8.1. That probably explains it. Any idea how to use a third party EDIT: Cygwin should contain some |
Oh, it's in
I guess that's because |
You should add /usr/include to the include path, sys is implicit. But that should be part of the default system search path already!? Header files in Btw, I was using some old gcc version from previous msys installation! I removed the old MinGW install and installed gcc using pacman. Now I get support for a lot more functions. |
I am sort of giving up on on this one! Now I cannot even compile the driver anymore. It complains about tchar.h not being found! I know way to little about msys2 to make any progress here :( |
I guess the include path has something to do with the cross compiling and thus we can't include
So I'm quite sure that's not the correct way to continue. I should understand how Heh, have you messed up your include path? Yeah, I'm kinda in the same boat, plus I don't know autotools/autoconf. One thing I know is the silver searcher can be compiled on Windows if it helps anyone. |
There seems to be some inconsitency here. |
Yeah, I agree. I kinda gave up on this and decided to experiment with the driver and C#. Got it working pretty nice, but now I need to find a C# library that supports seeking non-compressed RARs.. Without seeking it's working already :) EDIT: I guess I should abandon C# and become almost a direct competitor with C++ ;) |
There is nothing wrong with a bit of competition :) |
Actually I will leave it open. Maybe someone else is more successful in picking up where we left of? |
Open issues do invite more discussion indeed. I wonder how portable the current rar2fs code is, apart from autotools.. If I skipped the whole FUSE API and used matching CBFS/Dokan APIs directly from a different toolchain (VS). |
I would say rar2fs is very portable, assuming a POSIX compliant platform with FUSE support. |
WIth msys2, it's possible to use many POSIX-compliant functionalities like pthread, not all though (at least FUSE will not work because it uses system call provided by Linux kernel, and Windows kernel does not provide functions like that). It seems that "Callback File System" is one of VFS-like driver for Windows, and provides "Compatibility layer" for existing FUSE modules. I have very interesting of that and I'll try it if there's some free time to me... :-) |
There is an alternative method to do this which will be followed up in issue #75 . |
Callback File System claims to support easy porting of FUSE modules to Windows with MinGW.
An evaluation version of Callback File System is available for download on their home page. The package contains the required libraries as well as samples. To actually run the binary, you'll need a free evaluation key, available on their site as well.
What do you think? Too much work?
The text was updated successfully, but these errors were encountered: