解析Debian包、版权和控制文件的实用工具。
项目描述
Python包 debut 是一个实用工具集合,用于解析各种Debian包清单、可机器读取的版权和控制文件,统称为Debian 822格式(基于RFC822电子邮件格式)。
为什么叫 debut?这是一个由 DEBian 和 UTilities 组合而成的合成词!
起源
这个库基于对原始代码的重度和混合修改,结合了来自其他来源的代码
从 @xolox 的 python-deb-pkg-tools,用于处理Debian包以及依赖和其他包间关系的解析。见 https://github.com/xolox/python-deb-pkg-tools
从 @agustinhenze 的 dlt (Debian license tools),用于检查许可证文件 Files部分的覆盖范围以及许多灵感。见 https://github.com/agustinhenze/dlt/
从 @SecurityInnovation 和 @Commod0re 的 PGPy,能够从电子邮件中移除PGP签名。dsc (Debian Source Control) 文件通常是PGP签名的。见 https://github.com/SecurityInnovation/PGPy
python-dpkg 由 @TheClimateCorporation 和 @memory 开发,它能够处理 Debian 版本的语法,并根据规范进行比较。请参阅 https://github.com/TheClimateCorporation/python-dpkg
为什么?
为什么要创建这个看似冗余的库?官方的 python-debian 工具和几个其他实用程序已经提供了类似的功能!
表面上看这是正确的,但仍有几个原因需要新的实用程序
现有工具严格解析控制文件。这个库试图更加灵活。例如,它可以识别和修复一些几乎正确的版权文件,这些文件虽然不是完全“机器可读”,但与规范非常接近,值得恢复。
其中一些工具必须处理遗产兼容性。我们没有这样的需求。例如,Python 标准库的 email 模块和一行代码就足以解析 Debian 822 文件字段。我怀疑在 python-debian 开始时标准库中可能没有这个功能,但现在它已经有了,这极大地简化了代码。
这个库的重点是解析和检查控制文件,而不是生成和创建它们,因此代码和测试可以更加简单。例如,与保留 Deb822 类似对象的 case,而不是使用更复杂的无大小写字典键,这个库在整个库中使用小写键。
官方的 python-debian 库是 GPL 许可的,这使得它难以与 Apache 许可的库结合使用。我曾试图与 python-debian 的所有作者商讨许可变更,以便它可以集成到宽松许可的 Python 工具中。尽管大多数当前维护者和贡献者都对这种重新许可到宽松或 LGPL 许可表示赞同,但我无法从一些重要的遗产作者那里获得回复和同意:因此重新许可是不可能的。
许可
SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause AND MIT
此软件结合了来自多个来源、具有不同许可的软件。所有这些许可证都适用,因为所有原始文件都已显著重构和重新混合。
Copyright nexB Inc. and others. Copyright (c) 2018 Peter Odding. Copyright 2017 The Climate Corporation (https://climate.com) Copyright (c) 2014-2019 Security Innovation, Inc Copyright 2013 Agustin Henze <tin@sluc.org.ar>
请注意,tests/ 目录可能还包含使用其他 FOSS 许可的文件。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
debut-0.9.9.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3a71e475295f4cf4292440c9c7303ebca0309d395536d2a7f86a5f4d7465dc1 |
|
MD5 | c0d5fb172c3b7052c53161ae4b756560 |
|
BLAKE2b-256 | f817f3d293a25e80fa4c3ac34751c374af16ecbbe8423872f12b58f937d52c02 |