-
Notifications
You must be signed in to change notification settings - Fork 123
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
Arch Linux - Compilation Error - "No rule to make target 'ChunkedStream.cs'" #744
Comments
I fixed a few problems (now pushed to Git).
I still have another problem though, but how is it going now on your side?
…On Mon, May 1, 2017 at 4:56 AM, errotu ***@***.***> wrote:
I try to compile the CmisSync on an Arch system. I'm following the steps
from: https://github.com/aegif/CmisSync/blob/master/CmisSync/
Linux/README.md
Unfortunately, when I'm executing the command:
make
I get the following terminal output:
Making all in build
make[1]: Entering directory '/home/anon/CmisSync/build'
Making all in m4
make[2]: Entering directory '/home/anon/CmisSync/build/m4'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/anon/CmisSync/build/m4'
make[2]: Entering directory '/home/anon/CmisSync/build'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/home/anon/CmisSync/build'
make[1]: Leaving directory '/home/anon/CmisSync/build'
Making all in CmisSync.Auth
make[1]: Entering directory '/home/anon/CmisSync/CmisSync.Auth'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/anon/CmisSync/CmisSync.Auth'
Making all in CmisSync.Lib
make[1]: Entering directory '/home/anon/CmisSync/CmisSync.Lib'
make[1]: *** No rule to make target 'ChunkedStream.cs', needed by
'../bin/CmisSync.Lib.dll'. Stop.
make[1]: Leaving directory '/home/anon/CmisSync/CmisSync.Lib'
make: *** [Makefile:413: all-recursive] Error 1
Do you have any idea how I can solve this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#744>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAGFBmsJW9EyFfReonwO3vR0IMiJ_xxpks5r1Od5gaJpZM4NMrBw>
.
|
Very good, thanks! I'm still not able to compile, nevertheless, I'm one step further. This is the current error message:
And this is the complete console output of make:
|
I just wanted to give the feedback that this error does unfortunately still exist exactly the same way in the current version of CmisSync. Any suggestions which might help? |
Sorry for that, you have to modify the Makefile.am files (for instance CmisSync.Lib/Makefile.am) to reference the files that the compiler wants. Thanks! :-) |
I took a look at the CmisSync.Lib/Makefile.am but did not find anything what hits me.
correctly, I guess the error lies in between line 155 to 168 of /CmisSync/CmisSync/Linux/StatusIcon.cs:
|
I'm experiencing the same issue on Gentoo Linux. Which resource provides SyncStatus, where does the SyncStatus class/namespace come from? I can't find any occurence in CmisSync aside from the Mac and Linux StatusIcon.cs files. @nicolas-raoul Edit 2018-02-26: After months of no activity, I've taken a closer look myself and finally found the missing piece in the commit history of the CmisSync library. SyncStatus was removed from CmisSync.Lib/RepoBase.cs in commit 118e469 on 19 Jul 2016:
Obviously the intention was to replace the different enum types of SyncStatus by a boolean value. A grep of SyncStatus shows:
So the enum is still in use. Furthermore we can see that the function Status of the class RepoBase is still used in CmisSync/*/StatusIcon.cs:
From what i could gather the errors that people are experiencing are then related to errors in the CmisSync code where the SyncStatus enum and Status function are still not replaced by the new objects. This problem must then exist for the last year and a half. Something has to be very wrong, when a search for SyncStatus in the whole source tree doesn't return a single definition. Why this hasn't been fixed yet, I don't know. In any case, this should definitely concern both Mac and Linux systems, as both StatusIcon.cs files contain the errors. @nicolas-raoul: Could you please comment, whether you intend to fix this error and if there are likely more still hidden in the code? In the face of such obvious bugs, I have problems trusting a software with my important files. |
I've fixed it with the following patch:
It then compiles. Adding a repository works. However, after it has successfully finished syncing the first time, it keeps one subprocess at 100% cpu load and The log shows that the sync was completed. Even on DEBUG level, it doesn't show any activity while the 100% cpu activity happens. I let it run for 10 minutes or so and it didn't stop. It also starts right up again when I start the program again. @nicolas-raoul I'm assuming the above patch, because it only concerns the Status Icon, couldn't have anything to do with this. Could you please have a look at the parts that govern this behavior? Because I really don't know enough about how this all works to fix this bug. Thank you in advance for your help ! |
@apus2016 Thanks for the patch! It will be useful to other people trying to make CmisSync work on Linux. |
@nicolas-raoul After some spelunking I found the problem. You are preventing any kind of per-platform choice of Watcher backend by setting the environment variable to a string. Remove it in every occurence and the auto-detected backend will be used instead of the DefaultWatcher, which is more than bad for Linux systems. Similarly this is bad for OSX systems. You'll find my notes in the following and the patch at the end. Do you think you could help me and create an option to make the synchronization one-way? I'd really like to test your program more, but the risk, that there are bugs in it, that could mess with my Alfresco repositories, makes me nervous. Perhaps that would help to get more people to test your software. In return I'd offer my working Dockerfile, on which I spent quite a lot of hours. It makes running the program on Linux easy. Let's look at the implementation in Mono, FileSystemWatcher.cs. The configuration, which backend is used, depends on the environment variable In the code of CmisSync there is an if/else block that adds an environment variable if the compiler is Mono.
which handles the case of Mono compilation. So it sets MONO_MANAGED_WATCHER=enabled. Going through the Mono implementation on lines 114-165 we see that if the environment So in order to be sure that it chooses itself the best possible backend, we need to Regarding the internal auto-detection of available backend we find it in filewatcher.c:
You can test which file system watcher is chosen by running:
Patch:
|
Thanks a lot for the investigation and patch! One-way synchronization would be great. Unfortunately I am working on a different project currently :-/ Ideally one-way sync should be in a new class, rather than introducing many if/else switches in the already complex algorithm. |
I try to compile the CmisSync on an Arch system. I'm following the steps from: https://github.com/aegif/CmisSync/blob/master/CmisSync/Linux/README.md with one change, I'm using
./configure --with-dotcmis=Extras/DotCMIS.dll --with-newtonsoft-json=Extras/Newtonsoft.Json.dll
instead of
./configure --with-dotcmis=Extras/DotCMIS.dll
Unfortunately, when I'm executing the command:
make
I get the following terminal output:
Do you have any idea how I can solve this?
The text was updated successfully, but these errors were encountered: