Future development plan of Seafile

After the open conflict between Seafile Ltd. and Seafile GmbH, we received many emails and inquiries from users of the Seafile community. We first want to thank you for supporting Seafile development team. But we also saw some concerns or uncertainties about the future development of Seafile project. These concerns are totally understandable given that Seafile GmbH claimed to fork Seafile. So we feel the necessity to share our thoughts about the future of Seafile.

Since the first release at October 2012, the Seafile development team has been working on Seafile and supporting the community for almost 4 years. We’ve seen that Seafile grows from a small project to a main stream cloud storage solution trusted by many large organizations. As the developer, we’re really proud of our product. And we have good faith in pushing Seafile to greater success. As we stated in our statement, Seafile GmbH’s leave won’t have any effect on our development capability. The core development team are 100% within Seafile Ltd. Community members will continue to get supports and updates to the Seafile community edition. All client apps are still actively developed and maintained by us. The Seafile software released by us will always be the official packages. A new 6.0 version will be available for testing soon. So stay tuned.

In the future we’ll build a more open user community around our new forum (https://forum.seafile.com/). We’ll invite active community members to help manage the forum and coordinate communication within the community.

There are some aspects that we’ll improve in the future:

  • Keep our road map and feature list more stable. In the past there were a period that we removed non-essential features to make Seafile more focused on file sync and share. Now that Seafile has been more stable, we’ll keep the feature list as stable as possible. Road map and feature plan changes will be more careful.
  • Improve installation and packaging of Linux clients and servers. We’ve heard many requests from Linux users about this. We’ll make Linux clients easier for packaging and finally make it into official Debian repositories. We’ll also provide Debian packages for Seafile servers.

Our customers who signed contracts with Seafile GmbH are the ones who are affected most by this event. Seafile Ltd. will honor all the contracts customers signed with Seafile GmbH. We’ll ensure smooth transition for these customers.

A lesson we learned from this conflict is that we have to use law and more rigorous contracts to protect our and our customers’ interest. If we were more careful in law when cooperating with Seafile GmbH, the incident today won’t happen. We’ll use legal ways to protect our brand and copyrights from infringement. Since Seafile Ltd is still a relatively young team, we will keep on learning and growing.

 

Statement about Stopping Cooperation with Seafile GmbH

From today on, Seafile Ltd. will stop all business relationship with Seafile GmbH. Seafile GmbH is a business partner of Seafile Ltd. in Germany. They’re not the developer of Seafile project. The termination of this cooperation won’t affect Seafile Ltd.’s ability to develop Seafile and support our customers.

In this statement we’ll explain why this business relationship has to be terminated, with support from facts. We’ll also reveal the infringement actions done by Seafile GmbH recently towards us. Yesterday Seafile GmbH published a statement about stopping cooperate with us. That statement has many places not consistent with the truth. We’ll clarify the confusion they’ve made in that statement.

In this statement, “we” refers to Seafile Ltd. and “they” refers to Seafile GmbH.

History of the Cooperation with Seafile GmbH

Our cooperation with Silja and Alexander Jackson began back in 2014. At that time they ran an IT service company JacksonIT in Germany. They became a reseller of Seafile Pro Edition and provides support to local customers. They also offered to help maintaining a community forum for Seafile in Germany (forum.seafile-server.org).

After cooperating for about a year, Seafile Ltd. and JacksonIT decided to take a step forward for our business cooperation. Seafile GmbH was founded at January 2015 by Silja and Alexander Jackson. Seafile GmbH was founded with the help from Seafile Ltd., including fund and branding supports. Seafile Ltd. made an investment of 16,000€ into Seafile GmbH as interest-free loan. We also granted them the rights to use Seafile trademark (and use “Seafile” as company name). The purpose of forming Seafile GmbH was to:

  1. Provide local support and better sales procedure to customers in Germany and Europe in general.
  2. Seafile GmbH will run a cloud storage service for German users (now known as app.seafile.de).

With these investment, Seafile Ltd. didn’t take any equity share from the newly formed company. The rationale was to leave the cloud service completely in German hands so that user’s data can be protected by German laws. Seafile Ltd. will get 70% share from the profit of Seafile GmbH’s businesses.

During 2015, as the business of Seafile GmbH developed, they needed more investment into infrastructure building and hiring employees. We agreed to leave part of our profit shares as fund for Seafile GmbH. We’ve been doing so for 3 quarters, totally about 80,000€. Again this investment was considered as interest-free loan.

At the beginning of 2016, Seafile Ltd. and Seafile GmbH both realized that we have to build a more solid legal foundation for our cooperation. They proposed the following framework:

  • The Pro software sales business of Seafile GmbH will be merged into Seafile Ltd. In exchange we will give shares from Seafile Ltd. to Silja and Alex Jackson.
  • A new company — Seafile Cloud GmbH will be formed to run the cloud service. This company will be completely owned by Silja and Alex Jackson.

But in the negotiation, they asked for an amount of shares that were completely not acceptable for us. The negotiation didn’t end up with a new agreement.

Not reaching agreement in a negotiation is normal in business practices. Seafile GmbH could have ended the cooperation if they’re not satisfied with the result. But they didn’t do that at that time. What they did were to secretly try to gain ownership of the Seafile project, without our notice.

Seafile GmbH’s Infringements to Seafile Ltd.

Since April 2016, we’ve noticed multiple infringement actions from Seafile GmbH towards Seafile Ltd.

First, they registered “seafile” organization on github without noticing us. The contact email and address for this organization are set to Seafile GmbH. And they forked all open source Seafile projects into this organization. This action makes people think that they’re the owner of the Seafile project. This is not allowed in our agreement.

Second, they changed the community forum domain name from “forum.seafile-server.org” to “forum.seafile.de”, without noticing us again. This action turns a community website into their private property. The valuable contents on this forum were created by Seafile developers and the community. Taking ownership of this forum is unethical. In their statement yesterday, they announced removing the account of Seafile team members from the forum. This action further proves that they consider the forum their own property. They have the rights to ban anyone they don’t like on the forum.

Third, they secretly applied for “Seafile” trademark in the United States. The application can be viewed below. This is serious violation to our agreement, which clearly stated that Seafile Ltd. is the trademark owner of Seafile. A screenshot of our agreement is attached below, with Silja Jackson’s signature. Furthermore, they stated their first use date of “Seafile” name in U.S. is 2014.02.14. But at that time they haven’t even started cooperate with us. Their claim has no ground.

trademark2

agreement

Fourth, they refused to transfer the profit shares from Pro software sales  for Q2 2016 to us. After we requested them to stop all the above infringement actions, they silently ignore our request to transfer profit share to us. This is not only violation to our agreement. This is business fraud.

Fifth, they committed copyright infringement to Seafile Pro Edition. Seafile is an open source project release under dual license. The community edition is released under open source licenses. But the Pro Edition copyright is owned by Seafile Ltd. The reason we granted them access to our Pro source code was that: one of our customers — HU Berlin wanted to have access to source code. Because Seafile GmbH was also one party in the contract, we let them provide the source code access to HU Berlin on behalf of us. We didn’t authorize them to do anything other that on our source code. In yesterday’s statement, they announced that they’ll continue developing Pro Edition based on 5.1.8. This is copyright infringement. They have no rights to further develop Pro Edition or distribute it. This behavior is also dangerous to all customers who want to buy software from them.

Counter Statements against Seafile GmbH’s Statements

In their statement: “Instead we will continue to develop Seafile independently in Germany and Europe for the Seafile Professional Edition based on version 5.1.8.”

Our response: This is copyright infringement behavior.

In their statement: “Our cooperation now has reached a point where we can no longer in good conscience develop a software together.”

Our response: As we’ve stated above, it’s obvious that it’s them who pushed our relationship into the current point. And they’re no developer of Seafile project. They’ve never committed a line of code to Seafile’s repositories. Their only “contribution” to Seafile “development” is writing an auto-installation script.

In their statement: “Seafile Ltd. …… disrespect towards data privacy when it comes to German or European law.”

Our response: We haven’t committed any actions that break privacy laws in Germany or Europe. After publishing their statement yesterday, Seafile GmbH deleted all the private data of Seafile Ltd. team members stored on app.seafile.de. This implies that they think they have the rights to delete anyone’s data on that service if they don’t like them. This is violation of their terms of service. This is also infringement to user’s privacy. Seafile GmbH is not so trustworthy in terms of privacy protection.

In their statement: “Seafile Ltd. revoking our access to the Seafile Professional sources despite it violating contracts with customers. After all the effort we have put into Seafile we see this as the final breach of trust which leaves us no other choice than to part ways with Seafile Ltd.” “Seafile GmbH is obligated to provide our customers with a trustworthy, secure and reliable product. We can no longer guarantee under these circumstances.”

Our response: Given their infringements to our copyright, we’re just going to protect our interest. If a customer of Seafile Pro Edition wants to access the source code, they can get it directly from Seafile Ltd. So revoking Seafile GmbH’s access source code doesn’t affect customers’ trust on Pro Edition.

In their statement: “Our goal at Seafile GmbH is and has always been to provide a stable and reliable product for our customers and the Open Source community.”

Our response: Seafile GmbH has never committed a line of code to Seafile. Their statement about stability and reliability should be doubted.

In their statement: “Price raises during the last 12 month are unacceptable””Raising prices three times within a year (which in some cases meant a price increase of up to 400%) is extremely unprofessional in our opinion and sends a signal of instability and unreliability.”

Our response: We admit that raising price too frequently is not professional. But since we’ve just started commercialize Seafile last year, we didn’t have much experience. At the beginning we tagged an overly low price. With that price we found that we cannot sustain further development. We’ve changed price twice last year (not 3 times in a year). For old customers we all provide them with the old prices or with a discount.  We’ll take this advice and keep the current pricing scheme stable for the long term. Compared to other providers, Seafile’s price is in the fair range. On a side note, Silja and Alex from Seafile GmbH weren’t much against our raise of price. They even suggested higher prices than the current one. Using a decision that they agreed to attack us is not fair.

Conclusions

The statement from Seafile GmbH is full of false arguments and disrespect to Seafile Ltd. With all the helps we’ve given to them, they’re not only ungrateful but also greedy. They’ve committed copyright infringement, business fraud and violation of agreement. Such a business partner shouldn’t be trusted any more, by anyone. We’ve tried hard to reach out to them and negotiate a settlement, but they silently ignore our emails and calls. Their statement yesterday let us make the final decision to terminate the relationship.

The next step we’ll take is to use law to protect our rights.

Such a business decision doesn’t come easily and will have effects to our customers:

  • Seafile Ltd. will honor all the contracts for Pro license sales from Seafile GmbH before 2016.07.22. But since Seafile GmbH is no longer a legal distributor of Seafile software, we request all customers to download Seafile Pro edition from Seafile Ltd.’s channels from now on.
  • The cloud service app.seafile.de can no longer run Seafile Pro Edition. However Seafile GmbH can still use the community edition for hosting service. We request them to stop using Pro Edition immediately.

For the community, you can still continue using community edition and getting support from Seafile developers. The only change is we’ll setup and maintain a new community forum (to be named forum.seafile.com). We’ll make sure this forum always be the asset to all community users. A new version 6.0 with many improvements will be released soon.

But there are still some valid opinions in Seafile GmbH’s statement. We’ll certainly improve our release management and avoid road-map changes as long as possible. And we’ll keep our pricing scheme stable for the long term.

How to fix tray icon display issue on Ubuntu 14.04

If you’re using ubuntu desktop 14.04, there is a known problem in the seafile linux client 5.1 and later: The tray icon of seafile client would appear on the top-left corner of the screen.

This is a bug that exists in Qt versions earlier than qt 5.5. And lots of other software are also affected by it. Ubuntu 16.04 is not affected by this bug because it ships with Qt 5.5 (while ubuntu 14.04 ships Qt 5.2).

Here we provide a workaround for this bug.

The Workaround

First install the opt-qt561-trusty ppa and Qt 5.6 packages. The packages are installed to /opt/ so your system won’t be affected.

sudo add-apt-repository ppa:beineri/opt-qt561-trusty
sudo apt-get update
sudo apt-get install qt56base qt56translations qt56webengine

Download the wrapper script, which tells seafile-applet to use the Qt 5.6 libs we installed just now.

wget -O seafile-applet-qt56 https://gist.githubusercontent.com/lins05/6468059d8130ad50464b1b3b43ec46dc/raw/c23e84c435b60c528d06e40be239689f9947b9ed/seafile-applet-qt56
chmod +x seafile-applet-qt56
sudo mv seafile-applet-qt56 /usr/local/bin/

Then download the updated seafile client desktop file, which launchs seafile client through the wrapper scripts you downloaded just now:

wget -O seafile.desktop https://gist.githubusercontent.com/lins05/6468059d8130ad50464b1b3b43ec46dc/raw/c23e84c435b60c528d06e40be239689f9947b9ed/seafile.desktop
sudo cp seafile.desktop /usr/share/applications/seafile.desktop

Now you can launch seafile-applet from the ubuntu dashboard (quit the client first if it’s running). The tray icon of seafile client should appear in the correct position.

Finally, tell apt not to override the seafile.desktop file when you upgrade seafile client in the future:

sudo dpkg-divert --add /usr/share/applications/seafile.desktop

Seafile Pro server 5.1.10 adds file lock auto-expiration

Version 5.1.10 is another maintenance release. File locks will auto expire in 12 hours. This is to prevent file syncing errors when someone forget to unlock a file.

Here is full change log:

  • Remove user from groups when a user is deleted.
  • File lock only valid for 12 hours
  • [multi-institution] Enable institution admin to activate/inactive a user
  • [fix] Showing contact email in user auto-completion if it is set
  • [fix, multi-tenancy] Fix syncing sub-folder of a shared library
  • [fix, multi-tenancy] Fix file audit page broken when a group corresponding to an item is deleted
  • [fix] Fix seaf-fsck.sh –export fails without database
  • [fix] Fix users with Umlauts in their display name breaks group management and api2/account/info on some special Linux distribution
  • [fix] Fix can’t generate shared link for read-only shared library
  • [fix] Fix can still view file history after library history is set to “no history”.
  • [fix] Fix after moving or deleting multiple selected items in the webinterface, the buttons are lost until reloading
  • Check user before start seafile. The user must be the owner of seafile-data directory
  • Don’t allow emails with very special characters that may containing XSS string to register
  • [fix] Fix migrate from community edition to pro edition