|
1 сар өмнө | |
---|---|---|
scripts | 6 сар өмнө | |
src | 1 сар өмнө | |
.gitignore | 10 сар өмнө | |
MANIFEST.usm | 6 сар өмнө | |
README.md | 6 сар өмнө | |
usm.config | 6 сар өмнө |
{
"name": "my-package",
"version": "1.0.5+2",
"summary": "A sample package",
"licences": [ {"name": "GPLv3", "category": "libre", "text": "src/LICENSE"} ],
"provides": {
"bin:hello-world": "hello-world",
"app:hello-world.desktop": "hello-world.desktop",
"res:usr/share/icons/hicolor/scalable/hello-world.svg": "icons/hello-world.svg"
},
"depends": {
"runtime": [
"lib:libgtk-4.so.1",
],
"build": [
"bin:valac",
"bin:meson",
"inc:gtk-4.0"
],
"manage": [
"bin:bash"
]
},
"execs": {
"install": "usp-exec/install",
"remove": "usp-exec/remove",
"build": "usp-exec/build",
"rebuild": "usp-exec/rebuild"
}
}
{
"md": "src/DESCRIPTION.md",
"url": "https://my.package.com",
"screenshots": [ "hello-world-screenshot.png" ],
"icon": "hello-world.svg",
"git": { "origin": "https://git.my.package.com/hello-world", "commit": "8d9f3b198e3a767d41f3c33fac2fbd8496f23ed2" },
"metainfo": "hello-world.appdata.xml",
"extras": { "customData": "whatever" }
}
$PATH
$PKG_CONFIG_PATH
{
"name": "my-repo",
"summary": "My software repository",
"uris": [
"https://my.software/repository",
],
"key": "EDXLsUvOZEne+xcv+huvSaqNBs8TTldCv6hd69GdmYw="
}
Entries in JSON lines format:
{
"type": "usmc",
"manifest": {}, // Manifest object from MANIFEST.usm
"path": "my-package.usmc", // Relative path to the package
"sha512": "0+6QpQ5Wst2bPmAPYKO/RKrFYuq93rcaRs7tqt9lCo9zu8v6jpJsDqd7yPIqCWDt0KpOQ3uLK64Tmn9FYNw3eQ=="
}
Last line consists of the signatures for the repository
{
"type": "signatures",
"signatures": [
{
"key": "EDXLsUvOZEne+xcv+huvSaqNBs8TTldCv6hd69GdmYw=",
"signature": "0rHQiDGKgumMK2S3B6D9jjU3NLnLLjijYJRvaB5vLbp4zxzjlixfyX8yfvvJUCCd34CC1STzyzawDtb9ZammCTE4zFHFdpnO8eseDS5OY+aKgAyL13oBGizvy/V0zGHVCdv83GQ7QUtgSWje0RKKk1zPGDAIF/prkurlFDgd3Vg="
}
]
}
Complete package is simply a tar.xz file containing a MANIFEST.usm file and all the requisite files that would be acquired if the acquire script was run. That is to say, a USMC file could be created by simply running usm manifest acquire
followed by tar -cJf ../package.usmc .
.
{
"repository": "repositoryname",
"listfile": "2020-03-20T14:34:42.382748.usml",
"original_path": "packagename-0.1.1.usmc",
"signature_verified": true
}
Below here are draft ideas that may or may not get implemented
JSONL transaction journal format
{
"operation": "begin-transaction",
"timestamp": "2020-03-20T14:34:42.382748",
"snapshot": "path/to/backup/snapshot",
"subvolume": "path/to/transaction/subvolume"
}
{
"operation": "begin-transaction",
"timestamp": "2020-03-20T14:34:42.382748",
}