Initial Commit
This commit is contained in:
commit
e2b59ca0e0
|
@ -0,0 +1,19 @@
|
|||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
name: CI
|
||||
jobs:
|
||||
flatpak-builder:
|
||||
name: "Flatpak Builder"
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: bilelmoussaoui/flatpak-github-actions:freedesktop-22.08
|
||||
options: --privileged
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: flatpak/flatpak-github-actions/flatpak-builder@v4
|
||||
with:
|
||||
bundle: "mtrnords-matrix-client-nightly.flatpak"
|
||||
manifest-path: "build-aux/space.midnightthoughts.matrix_client.yml"
|
||||
cache-key: flatpak-builder-${{ github.sha }}
|
|
@ -0,0 +1,3 @@
|
|||
/target
|
||||
/repo
|
||||
/.flatpak-builder
|
|
@ -0,0 +1,18 @@
|
|||
# Updating cargo modules
|
||||
|
||||
```
|
||||
cargo update
|
||||
python3 ./build-aux/scripts/flatpak-cargo-generator.py ./Cargo.lock -o ./build-aux/generated-sources.json
|
||||
```
|
||||
|
||||
# Building
|
||||
|
||||
```
|
||||
flatpak-builder --install repo build-aux/space.midnightthoughts.matrix_client.yml --force-clean --user -y
|
||||
```
|
||||
|
||||
# Running
|
||||
|
||||
```
|
||||
flatpak run space.midnightthoughts.matrix_client
|
||||
```
|
|
@ -0,0 +1,736 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.65"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
|
||||
|
||||
[[package]]
|
||||
name = "autocfg"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "cairo-rs"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-sys-rs",
|
||||
"glib",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cairo-sys-rs"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"glib-sys",
|
||||
"libc",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cfg-expr"
|
||||
version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db"
|
||||
dependencies = [
|
||||
"smallvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "field-offset"
|
||||
version = "0.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92"
|
||||
dependencies = [
|
||||
"memoffset",
|
||||
"rustc_version",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-channel"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-core"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf"
|
||||
|
||||
[[package]]
|
||||
name = "futures-executor"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-task",
|
||||
"futures-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-io"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68"
|
||||
|
||||
[[package]]
|
||||
name = "futures-macro"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-task"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1"
|
||||
|
||||
[[package]]
|
||||
name = "futures-util"
|
||||
version = "0.3.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-macro",
|
||||
"futures-task",
|
||||
"pin-project-lite",
|
||||
"pin-utils",
|
||||
"slab",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gdk-pixbuf"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"gdk-pixbuf-sys",
|
||||
"gio",
|
||||
"glib",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gdk-pixbuf-sys"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"gio-sys",
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"libc",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gdk4"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-rs",
|
||||
"gdk-pixbuf",
|
||||
"gdk4-sys",
|
||||
"gio",
|
||||
"glib",
|
||||
"libc",
|
||||
"pango",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gdk4-sys"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"cairo-sys-rs",
|
||||
"gdk-pixbuf-sys",
|
||||
"gio-sys",
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"libc",
|
||||
"pango-sys",
|
||||
"pkg-config",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gio"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"futures-util",
|
||||
"gio-sys",
|
||||
"glib",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"pin-project-lite",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gio-sys"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"libc",
|
||||
"system-deps",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glib"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
"futures-executor",
|
||||
"futures-task",
|
||||
"futures-util",
|
||||
"gio-sys",
|
||||
"glib-macros",
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glib-build-tools"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
|
||||
[[package]]
|
||||
name = "glib-macros"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"heck",
|
||||
"proc-macro-crate",
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "glib-sys"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gobject-sys"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"glib-sys",
|
||||
"libc",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "graphene-rs"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"glib",
|
||||
"graphene-sys",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "graphene-sys"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"glib-sys",
|
||||
"libc",
|
||||
"pkg-config",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gsk4"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-rs",
|
||||
"gdk4",
|
||||
"glib",
|
||||
"graphene-rs",
|
||||
"gsk4-sys",
|
||||
"libc",
|
||||
"pango",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gsk4-sys"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"cairo-sys-rs",
|
||||
"gdk4-sys",
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"graphene-sys",
|
||||
"libc",
|
||||
"pango-sys",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gtk4"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"cairo-rs",
|
||||
"field-offset",
|
||||
"futures-channel",
|
||||
"gdk-pixbuf",
|
||||
"gdk4",
|
||||
"gio",
|
||||
"glib",
|
||||
"graphene-rs",
|
||||
"gsk4",
|
||||
"gtk4-macros",
|
||||
"gtk4-sys",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"pango",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gtk4-macros"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"proc-macro-crate",
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gtk4-sys"
|
||||
version = "0.5.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk4-rs.git#a9ce7534c322bdc519ab08b238cf3a9dab74b719"
|
||||
dependencies = [
|
||||
"cairo-sys-rs",
|
||||
"gdk-pixbuf-sys",
|
||||
"gdk4-sys",
|
||||
"gio-sys",
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"graphene-sys",
|
||||
"gsk4-sys",
|
||||
"libc",
|
||||
"pango-sys",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
|
||||
|
||||
[[package]]
|
||||
name = "libadwaita"
|
||||
version = "0.2.0"
|
||||
source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs.git#dab619d571d1b3c74b100537214d78a0c0e6dc0c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"futures-channel",
|
||||
"gdk-pixbuf",
|
||||
"gdk4",
|
||||
"gio",
|
||||
"glib",
|
||||
"gtk4",
|
||||
"libadwaita-sys",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"pango",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libadwaita-sys"
|
||||
version = "0.2.0"
|
||||
source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs.git#dab619d571d1b3c74b100537214d78a0c0e6dc0c"
|
||||
dependencies = [
|
||||
"gdk4-sys",
|
||||
"gio-sys",
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"gtk4-sys",
|
||||
"libc",
|
||||
"pango-sys",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.135"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
|
||||
|
||||
[[package]]
|
||||
name = "matrix-client"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"glib-build-tools",
|
||||
"gtk4",
|
||||
"libadwaita",
|
||||
"once_cell",
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memoffset"
|
||||
version = "0.6.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
|
||||
|
||||
[[package]]
|
||||
name = "pango"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"gio",
|
||||
"glib",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"pango-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pango-sys"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gtk-rs/gtk-rs-core.git#bc63686118d9382a5e46260ed040e2028e88321c"
|
||||
dependencies = [
|
||||
"glib-sys",
|
||||
"gobject-sys",
|
||||
"libc",
|
||||
"system-deps",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pest"
|
||||
version = "2.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
"ucd-trie",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-lite"
|
||||
version = "0.2.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
|
||||
|
||||
[[package]]
|
||||
name = "pin-utils"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
||||
|
||||
[[package]]
|
||||
name = "pkg-config"
|
||||
version = "0.3.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-crate"
|
||||
version = "1.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"thiserror",
|
||||
"toml",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
||||
dependencies = [
|
||||
"proc-macro-error-attr",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error-attr"
|
||||
version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.47"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
|
||||
dependencies = [
|
||||
"semver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
version = "1.0.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
|
||||
|
||||
[[package]]
|
||||
name = "semver"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
|
||||
dependencies = [
|
||||
"semver-parser",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "semver-parser"
|
||||
version = "0.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
|
||||
dependencies = [
|
||||
"pest",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.145"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.145"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.86"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"ryu",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "slab"
|
||||
version = "0.4.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.102"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "system-deps"
|
||||
version = "6.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709"
|
||||
dependencies = [
|
||||
"cfg-expr",
|
||||
"heck",
|
||||
"pkg-config",
|
||||
"toml",
|
||||
"version-compare",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.5.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ucd-trie"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
|
||||
|
||||
[[package]]
|
||||
name = "version-compare"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||
dependencies = [
|
||||
"winapi-i686-pc-windows-gnu",
|
||||
"winapi-x86_64-pc-windows-gnu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-i686-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-x86_64-pc-windows-gnu"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|
@ -0,0 +1,16 @@
|
|||
[package]
|
||||
edition = "2021"
|
||||
name = "matrix-client"
|
||||
version = "0.1.0"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
adw = {version = "0.2.0", git = "https://gitlab.gnome.org/World/Rust/libadwaita-rs.git", package = "libadwaita", features = ["v1_2", "gtk_v4_6"]}
|
||||
gtk = {version = "0.5.0", git = "https://github.com/gtk-rs/gtk4-rs.git", package = "gtk4", features = ["v4_6"]}
|
||||
once_cell = "1.15.0"
|
||||
serde = {version = "1.0", features = ["derive"]}
|
||||
serde_json = "1.0"
|
||||
|
||||
[build-dependencies]
|
||||
glib-build-tools = {version = "0.1.0", git = "https://github.com/gtk-rs/gtk-rs-core.git"}
|
|
@ -0,0 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Name=MTRNord's Matrix Client
|
||||
Comment=A client just doing what MTRNord wants
|
||||
Type=Application
|
||||
# should be the same as the Cargo project name
|
||||
Exec=matrix-client
|
||||
Terminal=false
|
||||
Categories=Utility;GTK;
|
||||
Keywords=Rust;Flatpak;GTK;
|
||||
# Icon=space.midnightthoughts.matrix_client
|
||||
StartupNotify=true
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Bilal Elmoussaoui 2020 <bilal.elmoussaoui@gnome.org> -->
|
||||
<!-- MTRNord 2022 <mtrnord@gmail.com> -->
|
||||
<component type="desktop-application">
|
||||
<id>space.midnightthoughts.matrix_client</id>
|
||||
<metadata_license>CC0</metadata_license>
|
||||
<project_license>GPL-3.0+</project_license>
|
||||
<name>MTRNord's Matrix Client</name>
|
||||
<summary>A client just doing what MTRNord wants</summary>
|
||||
<description>
|
||||
<p>A client just doing what MTRNord wants</p>
|
||||
</description>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://gitlab.gnome.org/World/design/contrast/raw/master/data/resources/screenshots/screenshot1.png</image>
|
||||
<caption>Main Window</caption>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<url type="homepage">https://nordgedanken.dev/</url>
|
||||
<!--
|
||||
Open Age Rating Service
|
||||
https://hughsie.github.io/oars/index.html
|
||||
-->
|
||||
<content_rating type="oars-1.0">
|
||||
<content_attribute id="social-chat">intense</content_attribute>
|
||||
<content_attribute id="social-audio">intense</content_attribute>
|
||||
</content_rating>
|
||||
<releases>
|
||||
<release version="0.1.0" date="2022-10-14">
|
||||
<description>
|
||||
<p>First release of MTRNord's Matrix Client</p>
|
||||
</description>
|
||||
</release>
|
||||
</releases>
|
||||
<kudos>
|
||||
<!--
|
||||
GNOME Software kudos:
|
||||
https://gitlab.gnome.org/GNOME/gnome-software/blob/master/doc/kudos.md
|
||||
-->
|
||||
<kudo>ModernToolkit</kudo>
|
||||
<kudo>HiDpiIcon</kudo>
|
||||
</kudos>
|
||||
<developer_name>MTRNord</developer_name>
|
||||
<update_contact>mtrnord1@gmail.com</update_contact>
|
||||
|
||||
<launchable type="desktop-id">space.midnightthoughts.matrix_client.desktop</launchable>
|
||||
</component>
|
|
@ -0,0 +1,925 @@
|
|||
[
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/gtk-rs/gtk-rs-core",
|
||||
"commit": "bc63686118d9382a5e46260ed040e2028e88321c",
|
||||
"dest": "flatpak-cargo/git/gtk-rs-core-bc63686"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/gtk-rs/gtk4-rs",
|
||||
"commit": "a9ce7534c322bdc519ab08b238cf3a9dab74b719",
|
||||
"dest": "flatpak-cargo/git/gtk4-rs-a9ce753"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://gitlab.gnome.org/World/Rust/libadwaita-rs",
|
||||
"commit": "dab619d571d1b3c74b100537214d78a0c0e6dc0c",
|
||||
"dest": "flatpak-cargo/git/libadwaita-rs-dab619d"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/anyhow/anyhow-1.0.65.crate",
|
||||
"sha256": "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602",
|
||||
"dest": "cargo/vendor/anyhow-1.0.65"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/anyhow-1.0.65",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate",
|
||||
"sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
|
||||
"dest": "cargo/vendor/autocfg-1.1.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/autocfg-1.1.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate",
|
||||
"sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
|
||||
"dest": "cargo/vendor/bitflags-1.3.2"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/bitflags-1.3.2",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/cairo\" \"cargo/vendor/cairo-rs\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/cairo-rs",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/cairo/sys\" \"cargo/vendor/cairo-sys-rs\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/cairo-sys-rs",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.10.3.crate",
|
||||
"sha256": "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db",
|
||||
"dest": "cargo/vendor/cfg-expr-0.10.3"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/cfg-expr-0.10.3",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/field-offset/field-offset-0.3.4.crate",
|
||||
"sha256": "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92",
|
||||
"dest": "cargo/vendor/field-offset-0.3.4"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/field-offset-0.3.4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.24.crate",
|
||||
"sha256": "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050",
|
||||
"dest": "cargo/vendor/futures-channel-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-channel-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-core/futures-core-0.3.24.crate",
|
||||
"sha256": "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf",
|
||||
"dest": "cargo/vendor/futures-core-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-core-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.24.crate",
|
||||
"sha256": "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab",
|
||||
"dest": "cargo/vendor/futures-executor-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-executor-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-io/futures-io-0.3.24.crate",
|
||||
"sha256": "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68",
|
||||
"dest": "cargo/vendor/futures-io-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-io-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.24.crate",
|
||||
"sha256": "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17",
|
||||
"dest": "cargo/vendor/futures-macro-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-macro-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-task/futures-task-0.3.24.crate",
|
||||
"sha256": "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1",
|
||||
"dest": "cargo/vendor/futures-task-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-task-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/futures-util/futures-util-0.3.24.crate",
|
||||
"sha256": "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90",
|
||||
"dest": "cargo/vendor/futures-util-0.3.24"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/futures-util-0.3.24",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/gdk-pixbuf\" \"cargo/vendor/gdk-pixbuf\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gdk-pixbuf",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/gdk-pixbuf/sys\" \"cargo/vendor/gdk-pixbuf-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gdk-pixbuf-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gdk4\" \"cargo/vendor/gdk4\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gdk4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gdk4/sys\" \"cargo/vendor/gdk4-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gdk4-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/gio\" \"cargo/vendor/gio\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gio",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/gio/sys\" \"cargo/vendor/gio-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gio-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/glib\" \"cargo/vendor/glib\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/glib",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/glib-build-tools\" \"cargo/vendor/glib-build-tools\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/glib-build-tools",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/glib-macros\" \"cargo/vendor/glib-macros\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/glib-macros",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/glib/sys\" \"cargo/vendor/glib-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/glib-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/glib/gobject-sys\" \"cargo/vendor/gobject-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gobject-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/graphene\" \"cargo/vendor/graphene-rs\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/graphene-rs",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/graphene/sys\" \"cargo/vendor/graphene-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/graphene-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gsk4\" \"cargo/vendor/gsk4\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gsk4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gsk4/sys\" \"cargo/vendor/gsk4-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gsk4-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gtk4\" \"cargo/vendor/gtk4\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gtk4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gtk4-macros\" \"cargo/vendor/gtk4-macros\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gtk4-macros",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk4-rs-a9ce753/gtk4/sys\" \"cargo/vendor/gtk4-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/gtk4-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/heck/heck-0.4.0.crate",
|
||||
"sha256": "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9",
|
||||
"dest": "cargo/vendor/heck-0.4.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/heck-0.4.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/itoa/itoa-1.0.4.crate",
|
||||
"sha256": "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc",
|
||||
"dest": "cargo/vendor/itoa-1.0.4"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/itoa-1.0.4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/libadwaita-rs-dab619d/libadwaita\" \"cargo/vendor/libadwaita\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/libadwaita",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/libadwaita-rs-dab619d/libadwaita/sys\" \"cargo/vendor/libadwaita-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/libadwaita-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/libc/libc-0.2.135.crate",
|
||||
"sha256": "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c",
|
||||
"dest": "cargo/vendor/libc-0.2.135"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/libc-0.2.135",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/memoffset/memoffset-0.6.5.crate",
|
||||
"sha256": "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce",
|
||||
"dest": "cargo/vendor/memoffset-0.6.5"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/memoffset-0.6.5",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/once_cell/once_cell-1.15.0.crate",
|
||||
"sha256": "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1",
|
||||
"dest": "cargo/vendor/once_cell-1.15.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/once_cell-1.15.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/pango\" \"cargo/vendor/pango\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/pango",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"cp -r --reflink=auto \"flatpak-cargo/git/gtk-rs-core-bc63686/pango/sys\" \"cargo/vendor/pango-sys\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": null, \"files\": {}}",
|
||||
"dest": "cargo/vendor/pango-sys",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/pest/pest-2.4.0.crate",
|
||||
"sha256": "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a",
|
||||
"dest": "cargo/vendor/pest-2.4.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/pest-2.4.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.9.crate",
|
||||
"sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116",
|
||||
"dest": "cargo/vendor/pin-project-lite-0.2.9"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/pin-project-lite-0.2.9",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate",
|
||||
"sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184",
|
||||
"dest": "cargo/vendor/pin-utils-0.1.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/pin-utils-0.1.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/pkg-config/pkg-config-0.3.25.crate",
|
||||
"sha256": "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae",
|
||||
"dest": "cargo/vendor/pkg-config-0.3.25"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/pkg-config-0.3.25",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-1.2.1.crate",
|
||||
"sha256": "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9",
|
||||
"dest": "cargo/vendor/proc-macro-crate-1.2.1"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/proc-macro-crate-1.2.1",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/proc-macro-error/proc-macro-error-1.0.4.crate",
|
||||
"sha256": "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
|
||||
"dest": "cargo/vendor/proc-macro-error-1.0.4"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/proc-macro-error-1.0.4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/proc-macro-error-attr/proc-macro-error-attr-1.0.4.crate",
|
||||
"sha256": "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
|
||||
"dest": "cargo/vendor/proc-macro-error-attr-1.0.4"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/proc-macro-error-attr-1.0.4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.47.crate",
|
||||
"sha256": "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725",
|
||||
"dest": "cargo/vendor/proc-macro2-1.0.47"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/proc-macro2-1.0.47",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/quote/quote-1.0.21.crate",
|
||||
"sha256": "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179",
|
||||
"dest": "cargo/vendor/quote-1.0.21"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/quote-1.0.21",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/rustc_version/rustc_version-0.3.3.crate",
|
||||
"sha256": "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee",
|
||||
"dest": "cargo/vendor/rustc_version-0.3.3"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/rustc_version-0.3.3",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/ryu/ryu-1.0.11.crate",
|
||||
"sha256": "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09",
|
||||
"dest": "cargo/vendor/ryu-1.0.11"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/ryu-1.0.11",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/semver/semver-0.11.0.crate",
|
||||
"sha256": "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6",
|
||||
"dest": "cargo/vendor/semver-0.11.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/semver-0.11.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/semver-parser/semver-parser-0.10.2.crate",
|
||||
"sha256": "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7",
|
||||
"dest": "cargo/vendor/semver-parser-0.10.2"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/semver-parser-0.10.2",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/serde/serde-1.0.145.crate",
|
||||
"sha256": "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b",
|
||||
"dest": "cargo/vendor/serde-1.0.145"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/serde-1.0.145",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.145.crate",
|
||||
"sha256": "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c",
|
||||
"dest": "cargo/vendor/serde_derive-1.0.145"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/serde_derive-1.0.145",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/serde_json/serde_json-1.0.86.crate",
|
||||
"sha256": "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074",
|
||||
"dest": "cargo/vendor/serde_json-1.0.86"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/serde_json-1.0.86",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/slab/slab-0.4.7.crate",
|
||||
"sha256": "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef",
|
||||
"dest": "cargo/vendor/slab-0.4.7"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/slab-0.4.7",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/smallvec/smallvec-1.10.0.crate",
|
||||
"sha256": "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0",
|
||||
"dest": "cargo/vendor/smallvec-1.10.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/smallvec-1.10.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/syn/syn-1.0.102.crate",
|
||||
"sha256": "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1",
|
||||
"dest": "cargo/vendor/syn-1.0.102"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/syn-1.0.102",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/system-deps/system-deps-6.0.2.crate",
|
||||
"sha256": "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709",
|
||||
"dest": "cargo/vendor/system-deps-6.0.2"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/system-deps-6.0.2",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/thiserror/thiserror-1.0.37.crate",
|
||||
"sha256": "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e",
|
||||
"dest": "cargo/vendor/thiserror-1.0.37"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/thiserror-1.0.37",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.37.crate",
|
||||
"sha256": "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb",
|
||||
"dest": "cargo/vendor/thiserror-impl-1.0.37"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/thiserror-impl-1.0.37",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/toml/toml-0.5.9.crate",
|
||||
"sha256": "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7",
|
||||
"dest": "cargo/vendor/toml-0.5.9"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/toml-0.5.9",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/ucd-trie/ucd-trie-0.1.5.crate",
|
||||
"sha256": "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81",
|
||||
"dest": "cargo/vendor/ucd-trie-0.1.5"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/ucd-trie-0.1.5",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.5.crate",
|
||||
"sha256": "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3",
|
||||
"dest": "cargo/vendor/unicode-ident-1.0.5"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/unicode-ident-1.0.5",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/version-compare/version-compare-0.1.0.crate",
|
||||
"sha256": "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73",
|
||||
"dest": "cargo/vendor/version-compare-0.1.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/version-compare-0.1.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/version_check/version_check-0.9.4.crate",
|
||||
"sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
|
||||
"dest": "cargo/vendor/version_check-0.9.4"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/version_check-0.9.4",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/winapi/winapi-0.3.9.crate",
|
||||
"sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
|
||||
"dest": "cargo/vendor/winapi-0.3.9"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/winapi-0.3.9",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate",
|
||||
"sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
|
||||
"dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate",
|
||||
"sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
|
||||
"dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n\n[source.\"https://github.com/gtk-rs/gtk-rs-core\"]\ngit = \"https://github.com/gtk-rs/gtk-rs-core\"\nreplace-with = \"vendored-sources\"\n\n[source.\"https://github.com/gtk-rs/gtk4-rs\"]\ngit = \"https://github.com/gtk-rs/gtk4-rs\"\nreplace-with = \"vendored-sources\"\n\n[source.\"https://gitlab.gnome.org/World/Rust/libadwaita-rs\"]\ngit = \"https://gitlab.gnome.org/World/Rust/libadwaita-rs\"\nreplace-with = \"vendored-sources\"\n",
|
||||
"dest": "cargo",
|
||||
"dest-filename": "config"
|
||||
}
|
||||
]
|
|
@ -0,0 +1,362 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
__license__ = 'MIT'
|
||||
import json
|
||||
from urllib.parse import urlparse, ParseResult, parse_qs
|
||||
import os
|
||||
import contextlib
|
||||
import glob
|
||||
import subprocess
|
||||
import argparse
|
||||
import logging
|
||||
import hashlib
|
||||
import asyncio
|
||||
import aiohttp
|
||||
import toml
|
||||
|
||||
CRATES_IO = 'https://static.crates.io/crates'
|
||||
CARGO_HOME = 'cargo'
|
||||
CARGO_CRATES = f'{CARGO_HOME}/vendor'
|
||||
VENDORED_SOURCES = 'vendored-sources'
|
||||
GIT_CACHE = 'flatpak-cargo/git'
|
||||
COMMIT_LEN = 7
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def workdir(path: str):
|
||||
oldpath = os.getcwd()
|
||||
os.chdir(path)
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
os.chdir(oldpath)
|
||||
|
||||
|
||||
def canonical_url(url):
|
||||
'Converts a string to a Cargo Canonical URL, as per https://github.com/rust-lang/cargo/blob/35c55a93200c84a4de4627f1770f76a8ad268a39/src/cargo/util/canonical_url.rs#L19'
|
||||
# Hrm. The upstream cargo does not replace those URLs, but if we don't then it doesn't work too well :(
|
||||
url = url.replace('git+https://', 'https://')
|
||||
u = urlparse(url)
|
||||
# It seems cargo drops query and fragment
|
||||
u = ParseResult(u.scheme, u.netloc, u.path, None, None, None)
|
||||
u = u._replace(path = u.path.rstrip('/'))
|
||||
|
||||
if u.netloc == 'github.com':
|
||||
u = u._replace(scheme = 'https')
|
||||
u = u._replace(path = u.path.lower())
|
||||
|
||||
if u.path.endswith('.git'):
|
||||
u = u._replace(path = u.path[:-len('.git')])
|
||||
|
||||
return u
|
||||
|
||||
|
||||
def get_git_tarball(repo_url, commit):
|
||||
url = canonical_url(repo_url)
|
||||
path = url.path.split('/')[1:]
|
||||
|
||||
assert len(path) == 2
|
||||
owner = path[0]
|
||||
if path[1].endswith('.git'):
|
||||
repo = path[1].replace('.git', '')
|
||||
else:
|
||||
repo = path[1]
|
||||
if url.hostname == 'github.com':
|
||||
return f'https://codeload.{url.hostname}/{owner}/{repo}/tar.gz/{commit}'
|
||||
elif url.hostname.split('.')[0] == 'gitlab':
|
||||
return f'https://{url.hostname}/{owner}/{repo}/-/archive/{commit}/{repo}-{commit}.tar.gz'
|
||||
elif url.hostname == 'bitbucket.org':
|
||||
return f'https://{url.hostname}/{owner}/{repo}/get/{commit}.tar.gz'
|
||||
else:
|
||||
raise ValueError(f'Don\'t know how to get tarball for {repo_url}')
|
||||
|
||||
|
||||
async def get_remote_sha256(url):
|
||||
logging.info(f"started sha256({url})")
|
||||
sha256 = hashlib.sha256()
|
||||
async with aiohttp.ClientSession(raise_for_status=True) as http_session:
|
||||
async with http_session.get(url) as response:
|
||||
while True:
|
||||
data = await response.content.read(4096)
|
||||
if not data:
|
||||
break
|
||||
sha256.update(data)
|
||||
logging.info(f"done sha256({url})")
|
||||
return sha256.hexdigest()
|
||||
|
||||
|
||||
def load_toml(tomlfile='Cargo.lock'):
|
||||
with open(tomlfile, 'r') as f:
|
||||
toml_data = toml.load(f)
|
||||
return toml_data
|
||||
|
||||
|
||||
def git_repo_name(git_url, commit):
|
||||
name = canonical_url(git_url).path.split('/')[-1]
|
||||
return f'{name}-{commit[:COMMIT_LEN]}'
|
||||
|
||||
|
||||
def fetch_git_repo(git_url, commit):
|
||||
repo_dir = git_url.replace('://', '_').replace('/', '_')
|
||||
cache_dir = os.environ.get('XDG_CACHE_HOME', os.path.expanduser('~/.cache'))
|
||||
clone_dir = os.path.join(cache_dir, 'flatpak-cargo', repo_dir)
|
||||
if not os.path.isdir(os.path.join(clone_dir, '.git')):
|
||||
subprocess.run(['git', 'clone', '--depth=1', git_url, clone_dir], check=True)
|
||||
rev_parse_proc = subprocess.run(['git', 'rev-parse', 'HEAD'], cwd=clone_dir, check=True,
|
||||
stdout=subprocess.PIPE)
|
||||
head = rev_parse_proc.stdout.decode().strip()
|
||||
if head[:COMMIT_LEN] != commit[:COMMIT_LEN]:
|
||||
subprocess.run(['git', 'fetch', 'origin', commit], cwd=clone_dir, check=True)
|
||||
subprocess.run(['git', 'checkout', commit], cwd=clone_dir, check=True)
|
||||
return clone_dir
|
||||
|
||||
|
||||
async def get_git_repo_packages(git_url, commit):
|
||||
logging.info('Loading packages from %s', git_url)
|
||||
git_repo_dir = fetch_git_repo(git_url, commit)
|
||||
packages = {}
|
||||
|
||||
with workdir(git_repo_dir):
|
||||
if os.path.isfile('Cargo.toml'):
|
||||
packages.update(await get_cargo_toml_packages(load_toml('Cargo.toml'), '.'))
|
||||
else:
|
||||
for toml_path in glob.glob('*/Cargo.toml'):
|
||||
packages.update(await get_cargo_toml_packages(load_toml(toml_path),
|
||||
os.path.dirname(toml_path)))
|
||||
|
||||
assert packages, f"No packages found in {git_repo_dir}"
|
||||
logging.debug('Packages in %s:\n%s', git_url, json.dumps(packages, indent=4))
|
||||
return packages
|
||||
|
||||
|
||||
async def get_cargo_toml_packages(root_toml, root_dir):
|
||||
assert not os.path.isabs(root_dir) and os.path.isdir(root_dir)
|
||||
assert 'package' in root_toml or 'workspace' in root_toml
|
||||
packages = {}
|
||||
|
||||
async def get_dep_packages(entry, toml_dir):
|
||||
assert not os.path.isabs(toml_dir)
|
||||
# https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
|
||||
if 'dependencies' in entry:
|
||||
for dep_name, dep in entry['dependencies'].items():
|
||||
if 'package' in dep:
|
||||
dep_name = dep['package']
|
||||
if 'path' not in dep:
|
||||
continue
|
||||
if dep_name in packages:
|
||||
continue
|
||||
dep_dir = os.path.normpath(os.path.join(toml_dir, dep['path']))
|
||||
logging.debug("Loading dependency %s from %s", dep_name, dep_dir)
|
||||
dep_toml = load_toml(os.path.join(dep_dir, 'Cargo.toml'))
|
||||
assert dep_toml['package']['name'] == dep_name, toml_dir
|
||||
await get_dep_packages(dep_toml, dep_dir)
|
||||
packages[dep_name] = dep_dir
|
||||
if 'target' in entry:
|
||||
for _, target in entry['target'].items():
|
||||
await get_dep_packages(target, toml_dir)
|
||||
|
||||
if 'package' in root_toml:
|
||||
await get_dep_packages(root_toml, root_dir)
|
||||
packages[root_toml['package']['name']] = root_dir
|
||||
|
||||
if 'workspace' in root_toml:
|
||||
for member in root_toml['workspace']['members']:
|
||||
for subpkg_toml in glob.glob(os.path.join(root_dir, member, 'Cargo.toml')):
|
||||
subpkg = os.path.normpath(os.path.dirname(subpkg_toml))
|
||||
logging.debug("Loading workspace member %s in %s", member, root_dir)
|
||||
pkg_toml = load_toml(subpkg_toml)
|
||||
await get_dep_packages(pkg_toml, subpkg)
|
||||
packages[pkg_toml['package']['name']] = subpkg
|
||||
|
||||
return packages
|
||||
|
||||
|
||||
async def get_git_repo_sources(url, commit, tarball=False):
|
||||
name = git_repo_name(url, commit)
|
||||
if tarball:
|
||||
tarball_url = get_git_tarball(url, commit)
|
||||
git_repo_sources = [{
|
||||
'type': 'archive',
|
||||
'archive-type': 'tar-gzip',
|
||||
'url': tarball_url,
|
||||
'sha256': await get_remote_sha256(tarball_url),
|
||||
'dest': f'{GIT_CACHE}/{name}',
|
||||
}]
|
||||
else:
|
||||
git_repo_sources = [{
|
||||
'type': 'git',
|
||||
'url': url,
|
||||
'commit': commit,
|
||||
'dest': f'{GIT_CACHE}/{name}',
|
||||
}]
|
||||
return git_repo_sources
|
||||
|
||||
|
||||
async def get_git_package_sources(package, git_repos):
|
||||
name = package['name']
|
||||
source = package['source']
|
||||
commit = urlparse(source).fragment
|
||||
assert commit, 'The commit needs to be indicated in the fragement part'
|
||||
canonical = canonical_url(source)
|
||||
repo_url = canonical.geturl()
|
||||
|
||||
git_repo = git_repos.setdefault(repo_url, {
|
||||
'commits': {},
|
||||
'lock': asyncio.Lock(),
|
||||
})
|
||||
async with git_repo['lock']:
|
||||
if commit not in git_repo['commits']:
|
||||
git_repo['commits'][commit] = await get_git_repo_packages(repo_url, commit)
|
||||
|
||||
cargo_vendored_entry = {
|
||||
repo_url: {
|
||||
'git': repo_url,
|
||||
'replace-with': VENDORED_SOURCES,
|
||||
}
|
||||
}
|
||||
rev = parse_qs(urlparse(source).query).get('rev')
|
||||
tag = parse_qs(urlparse(source).query).get('tag')
|
||||
branch = parse_qs(urlparse(source).query).get('branch')
|
||||
if rev:
|
||||
assert len(rev) == 1
|
||||
cargo_vendored_entry[repo_url]['rev'] = rev[0]
|
||||
elif tag:
|
||||
assert len(tag) == 1
|
||||
cargo_vendored_entry[repo_url]['tag'] = tag[0]
|
||||
elif branch:
|
||||
assert len(branch) == 1
|
||||
cargo_vendored_entry[repo_url]['branch'] = branch[0]
|
||||
|
||||
logging.info("Adding package %s from %s", name, repo_url)
|
||||
pkg_subpath = git_repo['commits'][commit][name]
|
||||
pkg_repo_dir = os.path.join(GIT_CACHE, git_repo_name(repo_url, commit), pkg_subpath)
|
||||
git_sources = [
|
||||
{
|
||||
'type': 'shell',
|
||||
'commands': [
|
||||
f'cp -r --reflink=auto "{pkg_repo_dir}" "{CARGO_CRATES}/{name}"'
|
||||
],
|
||||
},
|
||||
{
|
||||
'type': 'inline',
|
||||
'contents': json.dumps({'package': None, 'files': {}}),
|
||||
'dest': f'{CARGO_CRATES}/{name}', #-{version}',
|
||||
'dest-filename': '.cargo-checksum.json',
|
||||
}
|
||||
]
|
||||
|
||||
return (git_sources, cargo_vendored_entry)
|
||||
|
||||
|
||||
async def get_package_sources(package, cargo_lock, git_repos):
|
||||
metadata = cargo_lock.get('metadata')
|
||||
name = package['name']
|
||||
version = package['version']
|
||||
|
||||
if 'source' not in package:
|
||||
logging.debug('%s has no source', name)
|
||||
return
|
||||
source = package['source']
|
||||
|
||||
if source.startswith('git+'):
|
||||
return await get_git_package_sources(package, git_repos)
|
||||
|
||||
key = f'checksum {name} {version} ({source})'
|
||||
if metadata is not None and key in metadata:
|
||||
checksum = metadata[key]
|
||||
elif 'checksum' in package:
|
||||
checksum = package['checksum']
|
||||
else:
|
||||
logging.warning(f'{name} doesn\'t have checksum')
|
||||
return
|
||||
crate_sources = [
|
||||
{
|
||||
'type': 'archive',
|
||||
'archive-type': 'tar-gzip',
|
||||
'url': f'{CRATES_IO}/{name}/{name}-{version}.crate',
|
||||
'sha256': checksum,
|
||||
'dest': f'{CARGO_CRATES}/{name}-{version}',
|
||||
},
|
||||
{
|
||||
'type': 'inline',
|
||||
'contents': json.dumps({'package': checksum, 'files': {}}),
|
||||
'dest': f'{CARGO_CRATES}/{name}-{version}',
|
||||
'dest-filename': '.cargo-checksum.json',
|
||||
},
|
||||
]
|
||||
return (crate_sources, {'crates-io': {'replace-with': VENDORED_SOURCES}})
|
||||
|
||||
|
||||
async def generate_sources(cargo_lock, git_tarballs=False):
|
||||
# {
|
||||
# "git-repo-url": {
|
||||
# "lock": asyncio.Lock(),
|
||||
# "commits": {
|
||||
# "commit-hash": {
|
||||
# "package-name": "./relative/package/path"
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
git_repos = {}
|
||||
sources = []
|
||||
package_sources = []
|
||||
cargo_vendored_sources = {
|
||||
VENDORED_SOURCES: {'directory': f'{CARGO_CRATES}'},
|
||||
}
|
||||
|
||||
pkg_coros = [get_package_sources(p, cargo_lock, git_repos) for p in cargo_lock['package']]
|
||||
for pkg in await asyncio.gather(*pkg_coros):
|
||||
if pkg is None:
|
||||
continue
|
||||
else:
|
||||
pkg_sources, cargo_vendored_entry = pkg
|
||||
package_sources.extend(pkg_sources)
|
||||
cargo_vendored_sources.update(cargo_vendored_entry)
|
||||
|
||||
logging.debug('Adding collected git repos:\n%s', json.dumps(list(git_repos), indent=4))
|
||||
git_repo_coros = []
|
||||
for git_url, git_repo in git_repos.items():
|
||||
for git_commit in git_repo['commits']:
|
||||
git_repo_coros.append(get_git_repo_sources(git_url, git_commit, git_tarballs))
|
||||
sources.extend(sum(await asyncio.gather(*git_repo_coros), []))
|
||||
|
||||
sources.extend(package_sources)
|
||||
|
||||
logging.debug('Vendored sources:\n%s', json.dumps(cargo_vendored_sources, indent=4))
|
||||
sources.append({
|
||||
'type': 'inline',
|
||||
'contents': toml.dumps({
|
||||
'source': cargo_vendored_sources,
|
||||
}),
|
||||
'dest': CARGO_HOME,
|
||||
'dest-filename': 'config'
|
||||
})
|
||||
return sources
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('cargo_lock', help='Path to the Cargo.lock file')
|
||||
parser.add_argument('-o', '--output', required=False, help='Where to write generated sources')
|
||||
parser.add_argument('-t', '--git-tarballs', action='store_true', help='Download git repos as tarballs')
|
||||
parser.add_argument('-d', '--debug', action='store_true')
|
||||
args = parser.parse_args()
|
||||
if args.output is not None:
|
||||
outfile = args.output
|
||||
else:
|
||||
outfile = 'generated-sources.json'
|
||||
if args.debug:
|
||||
loglevel = logging.DEBUG
|
||||
else:
|
||||
loglevel = logging.INFO
|
||||
logging.basicConfig(level=loglevel)
|
||||
|
||||
generated_sources = asyncio.run(generate_sources(load_toml(args.cargo_lock),
|
||||
git_tarballs=args.git_tarballs))
|
||||
with open(outfile, 'w') as out:
|
||||
json.dump(generated_sources, out, indent=4, sort_keys=False)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -0,0 +1,83 @@
|
|||
id: space.midnightthoughts.matrix_client
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: "22.08"
|
||||
sdk: org.freedesktop.Sdk
|
||||
sdk-extensions:
|
||||
- org.freedesktop.Sdk.Extension.rust-stable
|
||||
command: matrix-client
|
||||
finish-args:
|
||||
- --share=ipc
|
||||
- --socket=fallback-x11
|
||||
- --socket=wayland
|
||||
- --device=dri
|
||||
- --share=network
|
||||
- --filesystem=home
|
||||
- --env=G_MESSAGES_DEBUG=none
|
||||
- --env=RUST_BACKTRACE=1
|
||||
build-options:
|
||||
append-path: /usr/lib/sdk/rust-stable/bin
|
||||
modules:
|
||||
- name: py3cairo
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- python3 setup.py install --prefix=/app --root=/
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://github.com/pygobject/pycairo/releases/download/v1.21.0/pycairo-1.21.0.tar.gz
|
||||
sha256: 251907f18a552df938aa3386657ff4b5a4937dde70e11aa042bc297957f4b74b
|
||||
- name: python3-gi
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- python3 setup.py install --prefix=/app --root=/
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://github.com/GNOME/pygobject/archive/refs/tags/3.42.2.tar.gz
|
||||
sha256: 56e6833f875bfe55409c780b9c87a9fc426c1cd55b3c65836de9d384d206201f
|
||||
- name: graphene
|
||||
buildsystem: meson
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://github.com/ebassi/graphene/archive/refs/tags/1.10.8.tar.gz
|
||||
sha256: 922dc109d2dc5dc56617a29bd716c79dd84db31721a8493a13a5f79109a4a4ed
|
||||
- name: gtk4
|
||||
buildsystem: meson
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://download.gnome.org/sources/gtk/4.8/gtk-4.8.1.tar.xz
|
||||
sha256: 5ce8d8de98a23bd0c8eca1a61094e1c009b5f009dcbd60b45e990a8db1b742fd
|
||||
- name: vala
|
||||
buildsystem: autotools
|
||||
build-options:
|
||||
config-opts:
|
||||
- --enable-unversioned
|
||||
- --disable-valadoc
|
||||
make-args:
|
||||
- bootstrap
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://download.gnome.org/sources/vala/0.56/vala-0.56.3.tar.xz
|
||||
sha256: e1066221bf7b89cb1fa7327a3888645cb33b604de3bf45aa81132fd040b699bf
|
||||
- name: libadwaita
|
||||
buildsystem: meson
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://download.gnome.org/sources/libadwaita/1.2/libadwaita-1.2.0.tar.xz
|
||||
sha256: 322f3e1be39ba67981d9fe7228a85818eccaa2ed0aa42bcafe263af881c6460c
|
||||
- name: matrix-client
|
||||
buildsystem: simple
|
||||
build-options:
|
||||
env:
|
||||
CARGO_HOME: /run/build/matrix-client/cargo
|
||||
build-commands:
|
||||
- cargo --offline fetch --manifest-path Cargo.toml --verbose
|
||||
- cargo --offline build --release --verbose
|
||||
- install -Dm644 ${FLATPAK_ID}.gschema.xml -t /app/share/glib-2.0/schemas/
|
||||
- glib-compile-schemas /app/share/glib-2.0/schemas/
|
||||
- install -Dm755 target/release/matrix-client -t /app/bin/
|
||||
- install -Dm644 build-aux/data/${FLATPAK_ID}.metainfo.xml -t /app/share/metainfo/
|
||||
- install -Dm644 build-aux/data/${FLATPAK_ID}.desktop -t /app/share/applications/
|
||||
#- install -Dm644 build-aux/data/${FLATPAK_ID}.svg -t /app/share/icons/hicolor/scalable/apps/
|
||||
sources:
|
||||
- type: dir
|
||||
path: ../
|
||||
- generated-sources.json
|
|
@ -0,0 +1,7 @@
|
|||
fn main() {
|
||||
glib_build_tools::compile_resources(
|
||||
"resources",
|
||||
"resources/resources.gresource.xml",
|
||||
"main.gresource",
|
||||
);
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/space/midnightthoughts/matrix_client/">
|
||||
<file compressed="true" preprocess="xml-stripblanks" alias="gtk/help-overlay.ui">shortcuts.ui</file>
|
||||
<file compressed="true" preprocess="xml-stripblanks">window.ui</file>
|
||||
</gresource>
|
||||
</gresources>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<object class="GtkShortcutsWindow" id="help_overlay">
|
||||
<property name="modal">True</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="section-name">shortcuts</property>
|
||||
<property name="max-height">10</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="title" translatable="yes" context="shortcut window">General</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="title" translatable="yes" context="shortcut window">Show shortcuts</property>
|
||||
<property name="action-name">win.show-help-overlay</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<menu id="main-menu"></menu>
|
||||
<template class="MainWindow" parent="AdwApplicationWindow">
|
||||
<property name="default_width">1280</property>
|
||||
<property name="default_height">720</property>
|
||||
<property name="title" translatable="true">Matrix Client</property>
|
||||
<property name="content">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="AdwHeaderBar">
|
||||
<child type="end">
|
||||
<object class="GtkMenuButton">
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
<property name="menu-model">main-menu</property>
|
||||
<property name="tooltip-text" translatable="yes">Main Menu</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwFlap">
|
||||
<property name="separator">
|
||||
<object class="GtkSeparator" />
|
||||
</property>
|
||||
<child type="flap">
|
||||
<object class="GtkStack">
|
||||
<property name="vexpand">true</property>
|
||||
<property name="transition-type">over-up</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="roomlist">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">7</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="halign">center</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Placeholder</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="room">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="vexpand">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Placeholder</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="hexpand">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="AdwEntryRow" id="entry">
|
||||
<property name="title" translatable="yes">Enter a Message…</property>
|
||||
<property name="input-purpose">free-form</property>
|
||||
<property name="enable-emoji-completion">true</property>
|
||||
<property name="show-apply-button">true</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<schemalist>
|
||||
<schema id="space.midnightthoughts.matrix_client" path="/space/midnightthoughts/matrix_client/">
|
||||
<key name="filter" type="s">
|
||||
<choices>
|
||||
<choice value='All'/>
|
||||
<choice value='Open'/>
|
||||
<choice value='Done'/>
|
||||
</choices>
|
||||
<default>'All'</default>
|
||||
<summary>Filter of the tasks</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
|
@ -0,0 +1,34 @@
|
|||
mod utils;
|
||||
mod window;
|
||||
|
||||
use gtk::gio;
|
||||
use gtk::prelude::*;
|
||||
use window::Window;
|
||||
|
||||
static APP_ID: &str = "space.midnightthoughts.matrix_client";
|
||||
|
||||
fn main() {
|
||||
gio::resources_register_include!("main.gresource").expect("Failed to register resources.");
|
||||
|
||||
// Create a new application
|
||||
let app = adw::Application::builder().application_id(APP_ID).build();
|
||||
|
||||
// Connect to signals
|
||||
app.connect_startup(setup_shortcuts);
|
||||
app.connect_activate(build_ui);
|
||||
|
||||
// Run the application
|
||||
app.run();
|
||||
}
|
||||
|
||||
fn setup_shortcuts(app: &adw::Application) {
|
||||
app.set_accels_for_action("win.filter('All')", &["<Ctrl>a"]);
|
||||
app.set_accels_for_action("win.filter('Open')", &["<Ctrl>o"]);
|
||||
app.set_accels_for_action("win.filter('Done')", &["<Ctrl>d"]);
|
||||
}
|
||||
|
||||
fn build_ui(app: &adw::Application) {
|
||||
// Create a new custom window and show it
|
||||
let window = Window::new(app);
|
||||
window.show();
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use gtk::glib;
|
||||
|
||||
use crate::APP_ID;
|
||||
|
||||
pub fn data_path() -> PathBuf {
|
||||
let mut path = glib::user_data_dir();
|
||||
path.push(APP_ID);
|
||||
std::fs::create_dir_all(&path).expect("Could not create directory.");
|
||||
path.push("data.json");
|
||||
path
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
use adw::prelude::*;
|
||||
use adw::subclass::prelude::AdwApplicationWindowImpl;
|
||||
use adw::subclass::prelude::*;
|
||||
use adw::EntryRow;
|
||||
use gio::Settings;
|
||||
use glib::subclass::InitializingObject;
|
||||
use gtk::{gio, glib, CompositeTemplate};
|
||||
use once_cell::sync::OnceCell;
|
||||
|
||||
// Object holding the state
|
||||
#[derive(CompositeTemplate, Default)]
|
||||
#[template(resource = "/space/midnightthoughts/matrix_client/window.ui")]
|
||||
pub struct Window {
|
||||
#[template_child]
|
||||
pub entry: TemplateChild<EntryRow>,
|
||||
pub settings: OnceCell<Settings>,
|
||||
}
|
||||
|
||||
// The central trait for subclassing a GObject
|
||||
#[glib::object_subclass]
|
||||
impl ObjectSubclass for Window {
|
||||
// `NAME` needs to match `class` attribute of template
|
||||
const NAME: &'static str = "MainWindow";
|
||||
type Type = super::Window;
|
||||
type ParentType = adw::ApplicationWindow;
|
||||
|
||||
fn class_init(klass: &mut Self::Class) {
|
||||
klass.bind_template();
|
||||
}
|
||||
|
||||
fn instance_init(obj: &InitializingObject<Self>) {
|
||||
obj.init_template();
|
||||
}
|
||||
}
|
||||
|
||||
// Trait shared by all GObjects
|
||||
impl ObjectImpl for Window {
|
||||
fn constructed(&self) {
|
||||
let obj = self.instance();
|
||||
// Call "constructed" on parent
|
||||
self.parent_constructed();
|
||||
|
||||
// Setup
|
||||
obj.setup_settings();
|
||||
}
|
||||
}
|
||||
|
||||
// Trait shared by all widgets
|
||||
impl WidgetImpl for Window {}
|
||||
|
||||
// Trait shared by all windows
|
||||
impl WindowImpl for Window {}
|
||||
|
||||
// Trait shared by all application windows
|
||||
impl ApplicationWindowImpl for Window {}
|
||||
|
||||
// Trait shared by all adwaita application windows
|
||||
impl AdwApplicationWindowImpl for Window {}
|
|
@ -0,0 +1,30 @@
|
|||
mod imp;
|
||||
|
||||
use gio::Settings;
|
||||
use glib::Object;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{gio, glib};
|
||||
|
||||
use crate::APP_ID;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct Window(ObjectSubclass<imp::Window>)
|
||||
@extends adw::ApplicationWindow, gtk::ApplicationWindow, gtk::Window, gtk::Widget,
|
||||
@implements gio::ActionGroup, gio::ActionMap, gtk::Accessible, gtk::Buildable,
|
||||
gtk::ConstraintTarget, gtk::Native, gtk::Root, gtk::ShortcutManager;
|
||||
}
|
||||
|
||||
impl Window {
|
||||
pub fn new(app: &adw::Application) -> Self {
|
||||
// Create new window
|
||||
Object::new(&[("application", app)])
|
||||
}
|
||||
|
||||
fn setup_settings(&self) {
|
||||
let settings = Settings::new(APP_ID);
|
||||
self.imp()
|
||||
.settings
|
||||
.set(settings)
|
||||
.expect("`settings` should not be set before calling `setup_settings`.");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue