36 个版本
0.19.1 | 2023 年 9 月 8 日 |
---|---|
0.18.0 | 2023 年 5 月 1 日 |
0.17.1 | 2023 年 2 月 21 日 |
0.17.0 | 2022 年 11 月 24 日 |
0.5.0 | 2019 年 6 月 28 日 |
#71 在 操作系统
2,373 每月下载量
用于 ostree-ext
400KB
8K SLoC
ostree-rs
Rust 对 libostree 的绑定。
libostree 既是共享库也是一组命令行工具,它结合了“类似 git”的提交和下载可引导文件系统的模型,并包含部署和管理引导加载器配置的层。
注意:此包已从
libostree
包重命名。
状态
现在大多数可以自动生成的绑定都在自动生成。目前不支持此包的任何内容可能需要手动编写绑定。这些绑定将根据需要添加。
使用
需求
ostree
包需要 libostree 和 libostree 开发头文件。
在 Debian 和 Ubuntu 上
$ sudo apt-get install libostree-1 libostree-dev
在 Fedora 和 CentOS 上
$ sudo dnf install ostree-libs ostree-devel
安装
要使用此包,将其添加到您的 Cargo.toml
[dependencies]
ostree = "0.10"
要使用后续 libostree 版本的功能,您还需要指定发布版本
[dependencies.ostree]
version = "0.10"
features = ["v2021_1"]
开发
可以使用常规 Cargo 命令构建和测试 ostree
和 ostree-sys
包。
生成代码
大多数代码基于 gir 文件使用 gir 工具生成。
您可以直接从本地 ostree 构建中复制它来更新 OSTree-1.0.gir
。
或者,这些部分可以使用包含的 Makefile 重新生成
$ make gir
运行以下命令以更新捆绑的 gir 文件
$ make update-gir-files
文档
libostree API 文档默认不包含在代码中,因为其采用了 LGPL 许可协议。这意味着使用 cargo doc
运行时,生成的代码不会包含 API 文档。要包含 API 文档到源代码中以便 cargo doc
$ make merge-lgpl-docs
请注意,如果您构建的软件包包含了 API 文档,则其实际上采用了 LGPL 许可协议,您需要遵守 LGPL 的要求(特别是,允许最终用户替换 LGPL 部分的内容)。
CI 构建过程中包括了 LGPL 文档到文档构建中。
更新 glib-rs
- 在
Makefile
中更新GIR_VERSION
为最新的 gir 提交(与目标 glib-rs 版本匹配) - 运行
make gir
以重新生成生成的代码 - 检查生成代码中的差异
- 在
Cargo.toml
和sys/Cargo.toml
中更新 glib-rs 的依赖
更新 ostree
- 在
Makefile
中更新OSTREE_VERSION
- 运行
make update-gir-files
以更新所有 gir 文件 - 检查
OSTree-1.0.gir
的差异 - 运行
make gir
以重新生成生成的代码 - 将任何新功能级别添加到
Cargo.toml
- 如果出现新的功能级别,则更新
README.md
中的示例功能级别
发布
可以使用管道中的 publish_* 作业进行发布。没有版本辅助工具,因此需要手动进行版本升级。
以下位置需要更改版本(如果适用)
- 在
sys/Cargo.toml
中为 -sys 软件包版本 - 在
Cargo.toml
中的ostree-sys =
依赖项 - 在
Cargo.toml
中为主软件包版本 - 在
README.md
的 安装 部分(如果进行主要版本升级)
然后以 ostree/x.y.z
和/或 ostree-sys/x.y.z
的形式标记提交。这将运行 crates.io 部署作业。主软件包和 -sys 软件包不需要同时发布。
许可证
ostree
软件包采用 MIT 许可协议。有关详细信息,请参阅 LICENSE 文件。
libostree 本身采用 LGPL2+ 许可协议。有关更多信息,请参阅其许可信息。
libostree 的 GIR 文件(gir-files/OSTree-1.0.gir
)源自 libostree 源代码,也采用 LGPL2+ 许可协议。LGPL 版本 2 的副本包含在 LICENSE.LGPL2 文件中。
其余的 GIR 文件(gir-files/*.gir
)来自 glib 项目,并采用 LGPL2.1+ 许可协议。LGPL 版本 2.1 的副本包含在 LICENSE.LGPL2.1 文件中。
依赖关系
~9.5MB
~207K SLoC