Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
seadrive-gui: init at 1.0.7, seadrive-daemon: init at 1.0.7 #66540
Motivation for this change
SeaDrive is the new client for the Seafile cloud syncing service. Unlike the original
And various Debian libcurl requirements with Debian versions To fix library version mismatch errors
To fix errors with glibc Debian buster version is built with a newer version of glibc than NixOS has
Nested directories were more difficult to follow and odd when a library is used by multiple packages
Instead of pulling from github To avoid an additional network operation and to avoid relying on a very specific git commit
aanderse left a comment
Thanks for choosing to contribute to nixpkgs! There are a few things to work through on this PR before we can merge but there are plenty of people who can answer questions you might have.
The initial questions/concerns with this PR for me are all of the custom package versions. Sometimes packages (especially proprietary ones) have fairly specific requirements and custom libs are a part of that, but often times we can work around those limitations using the tools we have at our disposal in nixpkgs.
Please see the questions/comments I have left as a review on this PR and let me know if you require any clarification.
@aanderse It looks like you are trying to trick the program into thinking it has a different version of the library. This was actually discussed as a possible solution on the #nixpkgs irc, but was deemed risky, especially since we are dealing with a data syncing service and don't want to risk losing data.
I just tried running it. It doesn't look like it fixes the warnings
Although the SeaDrive logs don't show any obvious errors, the data itself does not appear to be syncing. No files or Seafile libraries are available.
Also, are you sure replacing the bundled libevent_2_0 with an override like that is a good idea? It seems fragile. The latest libevent could make a change that breaks this libevent_2_0, or worse, breaks seadrive-daemon without breaking libevent_2_0, leading to a difficult to track down problem. With the bundled libevent_2_0 nix, at least we know it will always be the same package, unless we specifically change it.
Hi @JustinLovinger! Phew, you sure had to jump through a lot of hoops to make the daemon work.
I'm sorry to say that I feel that it's a bit too many hoops to be currently included in nixpkgs proper, especially considering the potentially high risk libraries like sasl and openssl. I suggest splitting out the open source / built-from-source bits into their own PR and letting the daemon and things live in your own repo such that people may opt into it.
@srhb Given your concerns about these Debian libraries, I took another look at removing them. I tried replacing the Debian binary of
There is still a warning when
but it doesn't seem to result in any runtime errors. I believe the warning is benign, and caused by a lack of, or difference in, an identifier string in
Also, a happy side effect of switching to the CentOS binary is that
This definitely looks better. However, I'm not sold on the premise that the warning is completely safe. Can you provide some more evidence of this?
Furthermore I'm not sure I like making the old libevent version local to this drv. We might want to keep it in top-level, alongside the newer one. It is still maintained as far as I know.
I'll try and invite some more people to weigh in as well, I don't feel completely comfortable making these calls on my own. :)
@srhb I think I tracked down what is happening with the "no version information available" warning. To begin, this warning is somewhat deceptively named. The warning actually means that an internal version identifier, provided through an
Even if the version does match exactly and the built on date and platform is not an issue, we may still get this warning because RHEL (and consequently, CentOS) change the behavior of
Also, I have personally been running this build of SeaDrive without error, and with heavy usage, for the past few days :)
I'm closing this pull request because I'm not using SeaDrive anymore. If anyone wants to pick this up or use SeaDrive themselves, you can find the latest changes here: https://github.com/JustinLovinger/nixpkgs/tree/init-seadrive. I give permission for anyone to make a new pull request with these changes, with maintainer changed, and proper attribution of course :) It worked when I last tested it, but that was several months ago.