以下内容为编译相关
-
用于自动生成makefile、configure的脚本。
完整的工具链详见Wiki - GNU Autotools,流程图如下:
-
编译配置。
可以从中看到编译该项目所需的全部Makefile.am,进而确认哪些目录中的源代码需要被编译。
-
编译规则。
该文件与configure.ac结合生成Makefile.in。在随后的过程中通过一系列步骤生成Makefile。
可以从中看到编译某部分内容所需要的所有源代码,以及该部分源代码的类型(库文件、头文件、源文件等)。
-
与autoconf有关。
以下内容为开源相关
-
开源证书。
-
项目介绍与说明。
-
测试说明。
-
测试脚本。(调用ci/run.py)
-
升级脚本。
-
持续集成(Continuous integration),利用的是Github Actions。(具体配置在“.github/workflows”下)
-
安装依赖项。
-
自动化安装、自动化测试。
-
被run.py调用,自动化配置seafile-server。
-
向前两者封装了所需的实用方法(主要是系统命令)。
从“.github/workflows/ci.yml”中可以得知CI的具体流程为:
- 进入工作目录
cd $GITHUB_WORKSPACE
- 安装依赖项
./ci/install-deps.sh
- 安装并测试。
./ci/run.py
-
-
各种用于安装、配置、管理的脚本。
-
文档。
-
目前只有seafile-admin,一个协助安装与管理的工具。
以下内容为客户端源代码
-
通过python实现了seafile服务端对应的的RPC客户端。
此子项目依赖pysearpc,一个Searpc的Python Binding(Python调用C库)。详见【libsearpc】。
以下内容为C语言实现的服务端源代码
-
库文件。
-
头文件。
-
通用源文件。
-
C实现的用户空间文件系统(Filesystem in Userspace)。
-
C实现的服务端核心。分为Seaf API(RPC协议)和Http API(Http协议)。
其中Seaf API用于向Seahub提供文件访问服务,Http API用于向桌面客户端提供文件同步服务。
以下内容为Go实现的服务端源代码
-
Go实现的服务端核心,同样也分为Seaf API和Http API。同时还包含了Go实现的用户空间文件系统。
-
启动seafile-server、ccnet-server、seafile-monitor。修复seafile-server和ccnet-server的进程。
以下内容为测试脚本
-
通过python实现的RPC客户端进行功能测试。