Seafile community edition 11.0.3 and SeaDoc 0.4 are now ready!

Hi Daniel,
Good job. Thank you for this update.

Hey,

This looks a great new version, two issues I’ve encountered with the upgrade (in addition to the missing DB column noted above).

  1. On Debian Bookworm, I also had to install libsasl2-dev so that python-ldap could be built.
  2. The call to pro.py in upgrade/upgrade_10.0_11.0.sh doesn’t handle spaces in passwords, and by the look things a whole stack of other special characters. You need to put quote marks round the variables.

Kind regards,
Andrew

1 Like

i just installed seafile 11.0.3 (compiled from source using the ARM build.sh script) using ./setup-seafile-mysql.sh auto ... but afterwards ./seafile.sh start fails with an error hinting to the pro version:

awk: fatal: cannot open file <install path>/seafile-server-11.0.3/pro/python/seafevents/seafevents_api.py' for reading: No such file or directory

any idea how to fix this?

We will look into the issue in the next week.

thanks! i suspect the build didn’t work properly, perhaps the build.sh script needs to be adjusted for v11 builds (missing flags?)? i just checked and the 10.0.1 build using the same script runs without errors.

however, i noticed that after i called ./setup-seafile-mysql.sh auto with the --seafile-dir flag poiting to a different directoy caused the configuration to either be incomplete or buggy, as seafile wouldn’t start because it didn’t find any data directory. i manually created seafile-data in the installation directory to get rid of this, but i assume --seafile-dir should be used to configure a different location?

It requires some edit to the build script indeed (and some to seahub’s build-server.py too).

But you can can try something like this:

cd seafile-server-11.0.3
mkdir -p pro/python
cp seahub/scripts/pro.py pro
cd pro/python
git clone --branch v11.0.3-server --depth 1 https://github.com/haiwen/seafevents.git

Don’t remember exactly but then you may need to create a seafevents.conf file in your conf directory:

[DATABASE]
type = mysql
host = 127.0.0.1
port = 3306
username = seafile
password = secret
name = seahub_db
[SEAHUB EMAIL]
enabled = false
interval = 30m
[STATISTICS]
enabled = false
1 Like

I successfully compiled seafile-server-11.0.3-bookworm-armv7l.tar.gz (using Raspberry Pi - Seafile Admin Manual - with a lot of fixes due to outdated python-libraries). When invoking ./seahub.sh start <PORT> I had the same error as @m.eik :

which could be solved with the help of the previous post from Barolo

But now there is still this error remaining when starting ./seahub.sh start <PORT>:

Error: module 'inspect' has no attribute 'getargspec'
Error:Seahub failed to start.

which I can’t debug any further due to my limited knowledge.
Any help would be appreciated.

EDIT (13.01.2024): Apparently inspect.getargspec has been removed with Python 3.11. Though I am running Debian Bookworm with Python 3.11.2 I am not entirely sure whether that is really the problem. In any case I have no clue how to solve this…

thanks for your remarks!

unfortunately, this didn’t really resolve the issues. i noticed that there is already a pro/python/seafevents directory (so git refuses to overwrite). i don’t get any error messeges except Error:Seahub failed to start. Please try to run "./seahub.sh start" againlog/seahub.log doesn’t show anything. this makes it hard to debug :confused:

does seafevents use the same database as seahub, as your example suggests? the config template in seafevents names the database seafevents.

@daniel.pan do you have any advice how to manually get this working using the supposedly outdated build script?

ok, when i set daemon = False in conf/gunicorn.conf.py, i got this error:

Starting seahub at port 8000 ...
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: libmysqlclient.so.21: cannot open shared object file: No such file or directory

installing the python package mariadb and subsequently rebuilding mysqlclient solved this issue. alternatively, installing libmysqlclient21 via apt also proved to be successful, but not having MySQL packages around felt like a more elegant solution.

We have updated the instruction for building Seafile community edition on Raspberry Pi or other platforms: Raspberry Pi - Seafile Admin Manual

On the other hand, Seafile community edition includes a docker image that can run on Arm64 based platforms already.

2 Likes

This is excellent news for those who compile the application themselves, thanks a lot!

thank you, that is helpful information!

i am currently writing some ansible roles to install and maintain seafile. personally i will rather try to fix (or reimplement) the alternative build.sh script instead of running the seafile-build.sh version because i prefer to go through the build process one step at a time.

Are ya’ll still on target to release seafile pro 11 in the next few days?

Yes. It will be released. We have almost finished a new version for community edition 11.0. The pro edition will be released after that.

has this really been updated? it looks like you have simply added a link to the build script and the note “old version is below”. i wouldn’t consider a build script documentation, and it calls another python script for the actual build (why not do it all in one readable bash script?).

could you please update the actual documentation?

1 Like

You can check the README.md file in the same folder for detailed instructions. I have updated the page in the manual accordingly.

i am not looking for instructions how to run the script. the script tries to do everything in one go, beginning with installation of debian packages and python libraries, fetching multiple sources from git and building each component. i don’t like this approach, i want more control, like the ability to only repeat a particular step if it has failed before, and not start it all over. therefore, i am looking for documentation on what the script actually does, and then be able to replicate all of it myself.

to be more specific, i’d like to re-implement the build script in an ansible role. but i find the python script hard to read.

I’m afraid writing the building steps in pure bash is difficulty for our team. Python is much easier to write complex logic.

there already is a pure bash build script, it just doesn’t include the fix mentioned above needed for seafile 11.x. in my opinion that would be a better foundation for an official build tool, especially since it already implements the stepwise approach i am looking for.

but what i am asking for is not for you to rewrite your scripts or replace it, but only to document the steps taken by your script to get to a proper build. in other words: could you please keep the section that begins with “Old version is below:” up-to-date? there should be human-readable documentation on how to properly build the server that goes beyond “run this script”.

1 Like

FYI, i have updated build.sh. it now takes care of the missing pro.py and seafevents and also patches build-server.py, adding missing functions from seafile-build.py. it does not create a seafevents.conf file, though, it just builds a tarball for installation.

please mind the notes from my pull request regarding the files seahub_requirements_v11.0.5.txt or seafdav_requirements_v11.0.5.txt referenced in the example. i’ve tested with the default requirements files and got a working server build.