Nautilus源码编译傻瓜式教程二
Nautilus源码编译傻瓜式教程一
Nautilus编译
依赖项文件
接上文,点击小锤子进行编译后出现如下的错误提示
看这个报错,未找到文件或目录,再看前面的git地址是github就知道肯定是下载有问题,查找下Nautilus项目,发现在nautilus/build-aux/flatpak/org.gnome.Nautilus.json文件内配置了下载地址
截的图里面就发现有两个需要下载了
org.gnome.Nautilus.json
文件是用于描述 Flatpak 打包的元数据文件,它用于告知 Flatpak 构建系统如何打包和管理 Nautilus 文件管理器作为一个独立的 Flatpak 应用程序
因此在进行编译Nautilus项目之前,必须先了解org.gnome.Nautilus.json
文件
主要字段解释:
- app-id:应用程序的唯一标识符。
- runtime 和 sdk:指定 Flatpak 运行时和 SDK 的版本。
- command:指定应用程序的启动命令。
- finish-args:指定运行时的权限和环境变量。
- modules:描述如何获取和构建应用程序的源代码。
该文件中的modules字段配置的信息是Nautilus的flatpak依赖项
依赖项下载
依赖项总共有8个,分别列出如下:
"sources" : [
{
"type" : "git",
"url" : "https://github.com/Exiv2/exiv2.git",
"branch" : "0.27-maintenance"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/gexiv2.git",
"tag" : "gexiv2-0.14.2"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/localsearch.git",
"branch" : "main"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/gnome-desktop.git"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/gnome-autoar.git"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://github.com/flatpak/libportal.git",
"branch" : "main"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/World/libcloudproviders.git"
}
]
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/nautilus.git",
"branch" : "main"
}
]
就用第一个依赖项目做样板,剩下的复刻操作就行了
直接访问https://github.com/Exiv2/exiv2.git,在浏览器中输入
https://github.com/Exiv2/exiv2 (去掉后面的.git即可)
处理方法
直接将exiv2这项目下载到指定路径,指定路径在哪呢?可以从报错日志中看出
相对路径为: .gnome-builder/flatpak-builder/git/
最优的处理方法
将项目复制到国内的托管网站gitlab,从gitlab下载项目到本地
注册gitlab账号
登录 · 极狐GitLab
新建仓库
直接把https://github.com/Exiv2/exiv2.git填入,
参照配置,其余的不用管,默认就行,新建项目
点击左上角图标进入主页,我这里已经把8个仓都镜像到gitlab了
配置ssh-key
查看你的ssh-key
将红框内全部复制
下载代码
处理方法
git clone git@jihulab.com:nautilus/exiv2.git 下载代码到.gnome-builder/flatpak-builder/git/目录
并修改配置文件
"sources": [
{
"type": "dir",
"path": "/home/XXXXXX/Projects/.gnome-builder/flatpak-builder/git/exiv2",
"branch": "0.27-maintenance"
}
注意path是你代码的全路径