haiwen / seafile-client

Seafile desktop client.
http://seafile.com
Apache License 2.0
471 stars 279 forks source link

libssl dependency in debian package #772

Closed andreas-h closed 7 years ago

andreas-h commented 8 years ago

The Debian package for Seafile client 5.0.1 depends on libssl1.0.0. However, that package is not available in Debian testing/stretch, there's only the package with name libssl1.0.2 there.

Please update the package definition of the Debian package for the Seafile client accordingly, so that the package depends on either libssl library version.

andreas-h commented 8 years ago

Hello? Does nobody care that the Debian package doesn't work on Debian/Testing?

I would update the control file myself, but the debian/ directory is not included in this repository ...

AnatomicJC commented 8 years ago

Hi guys,

As I'm using Debian Sid, I have the issue with the libssl package dependancy. After some search about how to build seafile-client debian package, I found this useful post https://groups.google.com/forum/#!msg/seafile/GS8L9g_yY0I/McOS7l7vBPwJ and I currently running seafile-applet installed from a working debian package. It is quite easy when you know the procedure. Basically, create a working dir and git clone the 4 projects. For each project, git checkout the latest stable release (v3.0.7 for libsearpc and v5.0.7 for the others) and build a tar.gz file with:

./autogen.sh; ./configure; make; make dist

For seafile-client:

./cmake .; make; make dist

About build dependancies, have a look here: http://manual.seafile.com/build_seafile/linux.html

Put each tar.gz file in a separate folder (I choosed /seafile-build/tar_gz), then use the https://github.com/haiwen/seafile/blob/master/scripts/build/build-deb.py to build the debian package:

python build-deb.py --version=5.0.7 --srcdir=/seafile-build/tar_gz/  --ccnet_version=5.0.7 --seafile_version=5.0.7 --seafile_client_version=5.0.7 --libsearpc_version=3.0.7
andreas-h commented 8 years ago

thanks for the update, @AnatomicJC ! When I follow your instructions, however, I run into the problem that compilation of ccnet requires libsearpc, which is not installed. Is there a way to build ccnet/seafile/seafile-client without previously installing the dependencies?

AnatomicJC commented 8 years ago

No, to build Debian package, you must install all dependencies. If you doesn't want to install these on your system, use a virtual machine, or a container. I used a docker container based on Debian testing release to build the package. I put mine here: http://jcvassort.open-web.fr/seafile_5.0.7_amd64.deb

endthestart commented 8 years ago

Is there a plan to release an updated client that works with Debian Testing and libssl1.0.2? Or is there a workaround that doesn't involve building the client?

4b69 commented 8 years ago

I have the same issue, and it's pretty silly about the old dependency. Building the client each time there's an update isn't a good solution

freeplant commented 8 years ago

Please check our repo for Debian. https://github.com/haiwen/seafile-user-manual/blob/master/en/desktop/install-on-linux.md#-debian

andreas-h commented 8 years ago

That doesn't help.

The seafile package depends on a libssl version which is not available for Debian9, which makes it impossible to install Seafile for everyone using Debian testing.

The proper way to fix this would be to

1) verify if the strict version requirement in the package definition is really necessary (I'm willing to bet it is not)

2) loosen the requirement in the Debian control file to require either one of libssl1.0.0 or libssl1.0.2.

AnatomicJC commented 8 years ago

The package I build some month ago should work: http://jcvassort.open-web.fr/seafile_5.0.7_amd64.deb If not, follow the procedure I explained upper.

killing commented 8 years ago

@andreas-h The debian package building method has been updated recently. It should be easier for the community to build seafile client for debian. Basically you build the packages for seafile, ccnet, libsearpc and seafile-client projects. Then you can make a package respository your own and install from it.

I am not sure whether it's just a matter of updating the control file to accept both libssl 1.0.0 and 1.0.2. You have to actually build the packages on debian testing so that it links with libssl 1.0.2. Is the libssl so files on debian testing compatible with libssl 1.0.0?

scotte commented 7 years ago

10 months later and this still isn't fixed! bintray (where the seafile repo is hosted) makes this easy, all the seafile maintainers need to do is publish it. :-/

4b69 commented 7 years ago

Honestly with the lack of comments from Seafile, at this point it's just easier to download the required .deb manually from Debian's repos and manually install it with "dpkg -i libssl1.0.0.deb" or whatever if it is. That way you can have the two required libssl versions installed despite being in unstable/testing branches and seafile-gui will work.

scotte commented 7 years ago

Right, the technical issue was easy for me to solve personally, but as Stretch has entered transition freeze, there will be more and more people starting to give Stretch a try - so it's in seafile's best interest to get updated builds published. And it's not a difficult thing for seafile to do, since all the infrastructure is already there for Jessie and Ubuntu builds...

85pando commented 7 years ago

Leaving this lie around with the comment "just build it yourself" should not be the solution. If I want to start building all the stuff myself I would switch to Arch. The hole reason behind the apt-system is that you can update your whole system without having to build everything yourself.

The best solution will probably be to require a libssl > 1.0.0 to make it more robust concerning future updates.

scotte commented 7 years ago

I think it's pretty clear that seafile is dead and unmaintained at this point. Too bad, too, because it's a really nice system and the only cross-platform sync'd "filesystem" that hasn't had weird conflict, ownership, and permissions issues.

freeplant commented 7 years ago

@scotte, Don't talk in this way. It is only because it is a low priority task for us.

You are well come to make changes and send pull request if yoi need it fixed soon.

We will work on libssl issue on debian stretch within a few months.

AnatomicJC commented 7 years ago

10 months ago, I explained on this thread how to build the Debian package. I can try to provide a Debian repository with the last seafile client if needed.

SteveSte commented 7 years ago

Guys please give this task a higher priority, many many people is switching to debian stretch that is THE NEXT STABLE VERSION

killing commented 7 years ago

We have fixed the dependencies. Now we requires ccnet, seafile and seafile-client to depend on libssl 1.0 version (on Jessie and Stretch). This is due to the fact that libcurl and Qt still depend on libssl 1.0, in order not to break existing applications. We depend on libssl 1.0 to avoid linking with two versions of libssl.

That said, the code is also updated to compile with libssl 1.1 too.

fmrtn commented 7 years ago

While updates the bintray repository, you can download my .debs

https://fs.mentatech.net/d/0fab783ab3/

Enjoy them.