mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-27 14:14:13 +00:00
Compare commits
38
Commits
62a851714e
...
v1.12.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a91252d7fb | ||
|
|
239170df45 | ||
|
|
5fef42a2e2 | ||
|
|
4f8f663f12 | ||
|
|
6ccc55a1d0 | ||
|
|
d266a3f073 | ||
|
|
d2993592be | ||
|
|
1a53ab62dc | ||
|
|
51fcd94a61 | ||
|
|
7f6a122816 | ||
|
|
7ca01ed8cb | ||
|
|
07321afb60 | ||
|
|
8534e516ad | ||
|
|
16ce233f79 | ||
|
|
c2f4658871 | ||
|
|
701bdebc88 | ||
|
|
d4ae78c7b0 | ||
|
|
9e1d50e30c | ||
|
|
85b6c17bd1 | ||
|
|
cfe478b02d | ||
|
|
0b23b3ed51 | ||
|
|
728d14006c | ||
|
|
f8bb84bbcf | ||
|
|
0dbcc771f5 | ||
|
|
b3a786a76c | ||
|
|
972e303bff | ||
|
|
c406704ce5 | ||
|
|
fd4a35e0e1 | ||
|
|
c793d09006 | ||
|
|
e4dd6d8b56 | ||
|
|
457416779a | ||
|
|
b0ac5490cc | ||
|
|
a728671b01 | ||
|
|
08153e4a1c | ||
|
|
c4699002fd | ||
|
|
dbcbf36df0 | ||
|
|
873ed9a6db | ||
|
|
601a5ce336 |
@@ -1,6 +1,29 @@
|
|||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
|
||||||
- package-ecosystem: "cargo"
|
- package-ecosystem: "cargo"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
|
groups:
|
||||||
|
egui-stack:
|
||||||
|
patterns:
|
||||||
|
- "egui*"
|
||||||
|
- "eframe"
|
||||||
|
|
||||||
|
serde-stack:
|
||||||
|
patterns:
|
||||||
|
- "serde*"
|
||||||
|
|
||||||
|
tokio-stack:
|
||||||
|
patterns:
|
||||||
|
- "tokio*"
|
||||||
|
- "reqwest"
|
||||||
|
|
||||||
|
clap-stack:
|
||||||
|
patterns:
|
||||||
|
- "clap*"
|
||||||
|
|||||||
+126
-73
@@ -12,7 +12,7 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
linux-build:
|
build-and-package:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@@ -33,32 +33,30 @@ jobs:
|
|||||||
libclang-dev \
|
libclang-dev \
|
||||||
libasound2-dev \
|
libasound2-dev \
|
||||||
libdbus-1-dev \
|
libdbus-1-dev \
|
||||||
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup Rust toolchain
|
- name: Setup Rust toolchain
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: 1.96.0
|
toolchain: stable
|
||||||
|
cache: false
|
||||||
|
|
||||||
- name: Rust Cache
|
- name: Rust Cache
|
||||||
uses: swatinem/rust-cache@v2
|
uses: swatinem/rust-cache@v2
|
||||||
|
with:
|
||||||
|
prefix-key: "v3-${{ matrix.runner }}"
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: cargo test --locked
|
run: cargo test --locked
|
||||||
|
|
||||||
- name: Build all binaries (debug-speed compilation into target/release)
|
- name: Build all binaries
|
||||||
env:
|
run: cargo build --locked
|
||||||
CARGO_PROFILE_RELEASE_OPT_LEVEL: 0
|
|
||||||
CARGO_PROFILE_RELEASE_DEBUG: "true"
|
|
||||||
CARGO_PROFILE_RELEASE_STRIP: "false"
|
|
||||||
CARGO_PROFILE_RELEASE_LTO: "false"
|
|
||||||
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 256
|
|
||||||
run: cargo build --release --locked
|
|
||||||
|
|
||||||
- name: Extract all binary names
|
- name: Extract all binary names
|
||||||
id: cargo-meta
|
id: cargo-meta
|
||||||
@@ -70,7 +68,7 @@ jobs:
|
|||||||
echo "$BIN_NAMES" >> $GITHUB_OUTPUT
|
echo "$BIN_NAMES" >> $GITHUB_OUTPUT
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Package all binaries into one archive
|
- name: Package ZIP archive
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -81,7 +79,7 @@ jobs:
|
|||||||
FILES=()
|
FILES=()
|
||||||
while IFS= read -r BIN; do
|
while IFS= read -r BIN; do
|
||||||
[ -z "$BIN" ] && continue
|
[ -z "$BIN" ] && continue
|
||||||
FILES+=("target/release/$BIN")
|
FILES+=("target/debug/$BIN")
|
||||||
done <<< "${{ steps.cargo-meta.outputs.bin_names }}"
|
done <<< "${{ steps.cargo-meta.outputs.bin_names }}"
|
||||||
|
|
||||||
if [ "${#FILES[@]}" -eq 0 ]; then
|
if [ "${#FILES[@]}" -eq 0 ]; then
|
||||||
@@ -89,70 +87,18 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for f in "${FILES[@]}"; do
|
|
||||||
if [ ! -f "$f" ]; then
|
|
||||||
echo "Error: expected binary not found: $f" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Will add: $f"
|
|
||||||
done
|
|
||||||
|
|
||||||
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
|
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
|
||||||
|
|
||||||
- name: Upload archive as artifact
|
- name: Upload ZIP artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: archive-${{ matrix.arch }}
|
name: archive-${{ matrix.arch }}
|
||||||
path: pwsp-*.zip
|
path: pwsp-*.zip
|
||||||
retention-days: 7
|
retention-days: 7
|
||||||
|
|
||||||
deb-build:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- arch: x64
|
|
||||||
runner: ubuntu-latest
|
|
||||||
- arch: arm64
|
|
||||||
runner: ubuntu-24.04-arm
|
|
||||||
fail-fast: false
|
|
||||||
runs-on: ${{ matrix.runner }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install apt deps (dev-libs)
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y \
|
|
||||||
libpipewire-0.3-dev \
|
|
||||||
libclang-dev \
|
|
||||||
libasound2-dev \
|
|
||||||
libdbus-1-dev \
|
|
||||||
pkg-config
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Setup Rust toolchain
|
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: 1.96.0
|
|
||||||
|
|
||||||
- name: Rust Cache
|
|
||||||
uses: swatinem/rust-cache@v2
|
|
||||||
|
|
||||||
- name: Build all binaries (debug-speed compilation into target/release)
|
|
||||||
env:
|
|
||||||
CARGO_PROFILE_RELEASE_OPT_LEVEL: 0
|
|
||||||
CARGO_PROFILE_RELEASE_DEBUG: "true"
|
|
||||||
CARGO_PROFILE_RELEASE_STRIP: "false"
|
|
||||||
CARGO_PROFILE_RELEASE_LTO: "false"
|
|
||||||
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 256
|
|
||||||
run: cargo build --release --locked
|
|
||||||
|
|
||||||
- name: Cache cargo-deb
|
- name: Cache cargo-deb
|
||||||
id: cache-cargo-deb
|
id: cache-cargo-deb
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v6
|
||||||
with:
|
with:
|
||||||
path: ~/.cargo/bin/cargo-deb
|
path: ~/.cargo/bin/cargo-deb
|
||||||
key: ${{ runner.os }}-${{ runner.arch }}-cargo-deb-v1
|
key: ${{ runner.os }}-${{ runner.arch }}-cargo-deb-v1
|
||||||
@@ -161,20 +107,108 @@ jobs:
|
|||||||
if: steps.cache-cargo-deb.outputs.cache-hit != 'true'
|
if: steps.cache-cargo-deb.outputs.cache-hit != 'true'
|
||||||
run: cargo install --locked cargo-deb
|
run: cargo install --locked cargo-deb
|
||||||
|
|
||||||
- name: Create .deb package (debug binaries from target/release)
|
- name: Create .deb package
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
cargo-deb -p pwsp-gui --no-build --no-strip
|
if [ "${{ github.event_name }}" == "push" ] && [ "${{ github.ref }}" == "refs/heads/main" ]; then
|
||||||
|
BASE_VERSION=$(grep '^version =' Cargo.toml | head -1 | cut -d'"' -f2)
|
||||||
|
GIT_REV=$(git rev-parse --short HEAD)
|
||||||
|
DATE=$(date +%Y%m%d)
|
||||||
|
DEB_VER="${BASE_VERSION}+git${DATE}.${GIT_REV}"
|
||||||
|
echo "Building nightly deb version: $DEB_VER"
|
||||||
|
cargo-deb -p pwsp-gui --no-build --no-strip --profile dev --deb-version "$DEB_VER"
|
||||||
|
else
|
||||||
|
cargo-deb -p pwsp-gui --no-build --no-strip --profile dev
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Upload .deb(s) as artifacts
|
- name: Upload .deb artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: deb-packages-${{ matrix.arch }}
|
name: deb-packages-${{ matrix.arch }}
|
||||||
path: target/debian/*.deb
|
path: target/debian/*.deb
|
||||||
retention-days: 7
|
retention-days: 7
|
||||||
|
|
||||||
|
deploy-nightly-apt:
|
||||||
|
needs: build-and-package
|
||||||
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
concurrency: gh-pages-deploy
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
|
||||||
|
- name: Setup GPG
|
||||||
|
id: gpg
|
||||||
|
uses: crazy-max/ghaction-import-gpg@v7
|
||||||
|
with:
|
||||||
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||||
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||||
|
|
||||||
|
- name: Download DEB artifacts
|
||||||
|
uses: actions/download-artifact@v8
|
||||||
|
with:
|
||||||
|
pattern: deb-packages-*
|
||||||
|
path: debs
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Checkout existing gh-pages
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
with:
|
||||||
|
ref: gh-pages
|
||||||
|
path: gh-pages-branch
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
|
- name: Generate Nightly APT Repository
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y reprepro
|
||||||
|
|
||||||
|
mkdir -p apt-repo
|
||||||
|
if [ -d "gh-pages-branch/apt" ]; then
|
||||||
|
cp -r gh-pages-branch/apt/* apt-repo/ || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p apt-repo/conf
|
||||||
|
cat <<EOF > apt-repo/conf/distributions
|
||||||
|
Origin: arabianq
|
||||||
|
Label: PipeWire Soundpad
|
||||||
|
Codename: stable
|
||||||
|
Architectures: amd64 arm64
|
||||||
|
Components: main
|
||||||
|
Description: APT Repository for PWSP
|
||||||
|
SignWith: ${{ steps.gpg.outputs.fingerprint }}
|
||||||
|
|
||||||
|
Origin: arabianq
|
||||||
|
Label: PipeWire Soundpad
|
||||||
|
Codename: nightly
|
||||||
|
Architectures: amd64 arm64
|
||||||
|
Components: main
|
||||||
|
Description: Nightly APT Repository for PWSP
|
||||||
|
SignWith: ${{ steps.gpg.outputs.fingerprint }}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
gpg --armor --export ${{ steps.gpg.outputs.fingerprint }} > apt-repo/pubkey.gpg
|
||||||
|
|
||||||
|
cd apt-repo
|
||||||
|
for deb in ../debs/*.deb; do
|
||||||
|
if [ -f "$deb" ]; then
|
||||||
|
echo "Adding $deb to nightly APT repository..."
|
||||||
|
reprepro includedeb nightly "$deb"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Deploy APT Repo to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v4
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./apt-repo
|
||||||
|
destination_dir: apt
|
||||||
|
keep_files: true
|
||||||
|
|
||||||
flatpak-build:
|
flatpak-build:
|
||||||
if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
|
if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
|
||||||
strategy:
|
strategy:
|
||||||
@@ -191,7 +225,7 @@ jobs:
|
|||||||
options: --privileged
|
options: --privileged
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v7
|
||||||
|
|
||||||
- name: Build Flatpak
|
- name: Build Flatpak
|
||||||
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||||
@@ -202,3 +236,22 @@ jobs:
|
|||||||
branch: master
|
branch: master
|
||||||
build-bundle: true
|
build-bundle: true
|
||||||
arch: ${{ matrix.arch }}
|
arch: ${{ matrix.arch }}
|
||||||
|
|
||||||
|
trigger-copr-nightly:
|
||||||
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install copr-cli
|
||||||
|
run: pip install copr-cli
|
||||||
|
|
||||||
|
- name: Trigger Copr Build
|
||||||
|
env:
|
||||||
|
COPR_CONFIG: ${{ secrets.COPR_CONFIG }}
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.config
|
||||||
|
echo "$COPR_CONFIG" > ~/.config/copr
|
||||||
|
copr-cli buildscm --nowait \
|
||||||
|
--clone-url https://github.com/arabianq/pipewire-soundpad.git \
|
||||||
|
--commit ${{ github.sha }} \
|
||||||
|
--spec packages/rpm/pwsp-git.spec \
|
||||||
|
arabianq/pwsp
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
name: Dependabot Flatpak Cargo Sources
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [opened, synchronize, reopened]
|
||||||
|
paths:
|
||||||
|
- "Cargo.lock"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-cargo-sources:
|
||||||
|
if: github.actor == 'dependabot[bot]'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write # Needed to push back to the branch
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
with:
|
||||||
|
ref: ${{ github.head_ref }}
|
||||||
|
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v6
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pip install aiohttp toml
|
||||||
|
|
||||||
|
- name: Generate cargo-sources.json
|
||||||
|
run: bash ./scripts/generate-sources.sh
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
uses: stefanzweifel/git-auto-commit-action@v7
|
||||||
|
with:
|
||||||
|
commit_message: "chore(flatpak): automatically update cargo-sources.json"
|
||||||
|
file_pattern: "packages/flatpak/cargo-sources.json"
|
||||||
@@ -21,9 +21,17 @@ on:
|
|||||||
default: "stable"
|
default: "stable"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
flatter-x64:
|
build-flatpak:
|
||||||
name: Flatter (x86_64)
|
name: Build Flatpak (${{ matrix.arch }})
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- arch: x86_64
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- arch: aarch64
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
fail-fast: false
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
container:
|
container:
|
||||||
@@ -32,13 +40,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
ref: ${{ inputs.tag_name || github.ref }}
|
ref: ${{ inputs.tag_name || github.ref }}
|
||||||
|
|
||||||
- name: Setup GPG
|
- name: Setup GPG
|
||||||
id: gpg
|
id: gpg
|
||||||
uses: crazy-max/ghaction-import-gpg@v6
|
uses: crazy-max/ghaction-import-gpg@v7
|
||||||
with:
|
with:
|
||||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||||
@@ -56,6 +64,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Modify Manifest
|
- name: Modify Manifest
|
||||||
run: |
|
run: |
|
||||||
|
sed -i '/^branch:/d' packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
|
sed -i '/^default-branch:/d' packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
echo "branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
|
echo "branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
echo "default-branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
|
echo "default-branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
|
|
||||||
@@ -69,77 +79,108 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
files: packages/flatpak/ru.arabianq.pwsp.yaml
|
files: packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
gpg-sign: ${{ steps.gpg.outputs.fingerprint }}
|
gpg-sign: ${{ steps.gpg.outputs.fingerprint }}
|
||||||
upload-bundles: false
|
upload-bundles: true
|
||||||
upload-pages-artifact: false
|
upload-pages-artifact: false
|
||||||
arch: x86_64
|
arch: ${{ matrix.arch }}
|
||||||
cache: true
|
cache: true
|
||||||
|
|
||||||
flatter-arm64:
|
prepare-repo:
|
||||||
name: Flatter (aarch64)
|
name: Prepare OSTree Repo
|
||||||
needs: flatter-x64
|
needs: build-flatpak
|
||||||
runs-on: ubuntu-24.04-arm
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
concurrency: gh-pages-deploy
|
||||||
contents: read
|
|
||||||
container:
|
container:
|
||||||
image: ghcr.io/andyholmes/flatter/freedesktop:25.08
|
image: ghcr.io/andyholmes/flatter/freedesktop:25.08
|
||||||
options: --privileged
|
options: --privileged
|
||||||
|
permissions:
|
||||||
|
contents: write # Needed to upload files to GitHub Release
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Download Flatpak Bundles
|
||||||
uses: actions/checkout@v4
|
uses: actions/download-artifact@v8
|
||||||
with:
|
with:
|
||||||
ref: ${{ inputs.tag_name || github.ref }}
|
path: bundles
|
||||||
|
pattern: ru.arabianq.pwsp-*
|
||||||
|
|
||||||
|
- name: Checkout existing gh-pages
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
with:
|
||||||
|
ref: gh-pages
|
||||||
|
path: gh-pages-branch
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Setup GPG
|
- name: Setup GPG
|
||||||
id: gpg
|
id: gpg
|
||||||
uses: crazy-max/ghaction-import-gpg@v6
|
uses: crazy-max/ghaction-import-gpg@v7
|
||||||
with:
|
with:
|
||||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||||
|
|
||||||
- name: Set Default Branch
|
- name: Update OSTree Repo and Prepare Release Bundles
|
||||||
id: set_branch
|
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ github.event_name }}" == "release" ]; then
|
mkdir -p release-bundles
|
||||||
echo "branch=stable" >> $GITHUB_OUTPUT
|
|
||||||
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
# Inherit existing OSTree repository to preserve previous branches (e.g. stable vs nightly)
|
||||||
echo "branch=${{ inputs.build_branch }}" >> $GITHUB_OUTPUT
|
# Only inherit if objects/ exists, otherwise it's a corrupted/empty repo due to Git ignoring empty folders
|
||||||
|
if [ -d "gh-pages-branch/objects" ]; then
|
||||||
|
echo "Found existing OSTree repository. Copying..."
|
||||||
|
cp -r gh-pages-branch pages-repo
|
||||||
|
# Clean up the .git folder so it doesn't interfere
|
||||||
|
rm -rf pages-repo/.git
|
||||||
|
# Recreate empty OSTree directories that Git ignored when pushing previously
|
||||||
|
mkdir -p pages-repo/refs/heads pages-repo/refs/mirrors pages-repo/refs/remotes \
|
||||||
|
pages-repo/objects pages-repo/state pages-repo/extensions pages-repo/tmp
|
||||||
else
|
else
|
||||||
echo "branch=nightly" >> $GITHUB_OUTPUT
|
echo "Initializing new OSTree repository..."
|
||||||
|
mkdir -p pages-repo
|
||||||
|
ostree init --mode=archive-z2 --repo=pages-repo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Modify Manifest
|
shopt -s nullglob
|
||||||
run: |
|
for dir in bundles/ru.arabianq.pwsp-*; do
|
||||||
echo "branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
|
arch=$(basename "$dir" | sed 's/ru.arabianq.pwsp-//')
|
||||||
echo "default-branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
|
|
||||||
|
|
||||||
- name: Install SDK Extensions
|
# Find the flatpak file inside the dir
|
||||||
run: |
|
bundle=$(find "$dir" -name "*.flatpak" | head -n 1)
|
||||||
flatpak install -y flathub org.freedesktop.Sdk.Extension.rust-stable//25.08
|
|
||||||
flatpak install -y flathub org.freedesktop.Sdk.Extension.llvm20//25.08
|
|
||||||
|
|
||||||
- name: Build Flatpak
|
if [ -n "$bundle" ]; then
|
||||||
uses: andyholmes/flatter@main
|
echo "Importing $bundle for architecture $arch..."
|
||||||
|
flatpak build-import-bundle pages-repo "$bundle"
|
||||||
|
|
||||||
|
# Copy with a unique name for GitHub Release
|
||||||
|
cp "$bundle" "release-bundles/ru.arabianq.pwsp-${arch}.flatpak"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Update summary and sign the repository
|
||||||
|
flatpak build-update-repo --generate-static-deltas --gpg-sign=${{ steps.gpg.outputs.fingerprint }} pages-repo
|
||||||
|
|
||||||
|
# Export GPG public key for manual import
|
||||||
|
gpg --export ${{ steps.gpg.outputs.fingerprint }} > pages-repo/pwsp.gpg
|
||||||
|
|
||||||
|
# Generate a .flatpakrepo file for easy installation
|
||||||
|
GPG_BASE64=$(gpg --export ${{ steps.gpg.outputs.fingerprint }} | base64 -w 0)
|
||||||
|
cat <<EOF | sed 's/^ *//' > pages-repo/pwsp.flatpakrepo
|
||||||
|
[Flatpak Repo]
|
||||||
|
Title=PipeWire Soundpad
|
||||||
|
Url=https://arabianq.github.io/pipewire-soundpad/
|
||||||
|
Homepage=https://github.com/arabianq/pipewire-soundpad
|
||||||
|
Comment=PipeWire Soundpad Flatpak Repository
|
||||||
|
Description=Official repository for PWSP
|
||||||
|
GPGKey=${GPG_BASE64}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Deploy Flatpak Repo to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v4
|
||||||
with:
|
with:
|
||||||
files: packages/flatpak/ru.arabianq.pwsp.yaml
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
gpg-sign: ${{ steps.gpg.outputs.fingerprint }}
|
publish_dir: ./pages-repo
|
||||||
upload-bundles: false
|
destination_dir: .
|
||||||
upload-pages-artifact: true
|
keep_files: true
|
||||||
arch: aarch64
|
|
||||||
cache: true
|
|
||||||
|
|
||||||
deploy:
|
- name: Upload bundles to GitHub Release
|
||||||
name: Deploy to GitHub Pages
|
if: github.event_name == 'release'
|
||||||
runs-on: ubuntu-latest
|
uses: softprops/action-gh-release@v3
|
||||||
needs: flatter-arm64
|
with:
|
||||||
permissions:
|
files: release-bundles/*.flatpak
|
||||||
pages: write
|
tag_name: ${{ github.event.release.tag_name }}
|
||||||
id-token: write
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v4
|
|
||||||
|
|||||||
+117
-112
@@ -23,46 +23,32 @@ jobs:
|
|||||||
id: tag
|
id: tag
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
INPUT_TAG="${{ github.event.inputs.tag || '' }}"
|
INPUT_TAG="${{ github.event.inputs.tag || '' }}"
|
||||||
if [ -n "$INPUT_TAG" ]; then
|
|
||||||
echo "Using input tag: $INPUT_TAG"
|
|
||||||
echo "tag=$INPUT_TAG" >> $GITHUB_OUTPUT
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
EVENT_TAG="${{ github.event.release.tag_name || '' }}"
|
EVENT_TAG="${{ github.event.release.tag_name || '' }}"
|
||||||
if [ -n "$EVENT_TAG" ]; then
|
|
||||||
echo "Using event tag: $EVENT_TAG"
|
if [ -n "$INPUT_TAG" ]; then
|
||||||
|
echo "tag=$INPUT_TAG" >> $GITHUB_OUTPUT
|
||||||
|
elif [ -n "$EVENT_TAG" ]; then
|
||||||
echo "tag=$EVENT_TAG" >> $GITHUB_OUTPUT
|
echo "tag=$EVENT_TAG" >> $GITHUB_OUTPUT
|
||||||
exit 0
|
elif [[ "${GITHUB_REF:-}" =~ ^refs/tags/(.+)$ ]]; then
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${GITHUB_REF:-}" =~ ^refs/tags/(.+)$ ]]; then
|
|
||||||
echo "Using GITHUB_REF tag: ${BASH_REMATCH[1]}"
|
|
||||||
echo "tag=${BASH_REMATCH[1]}" >> $GITHUB_OUTPUT
|
echo "tag=${BASH_REMATCH[1]}" >> $GITHUB_OUTPUT
|
||||||
exit 0
|
else
|
||||||
fi
|
|
||||||
|
|
||||||
echo "No tag in input/event/GITHUB_REF — querying latest release via API..."
|
|
||||||
LATEST_JSON=$(curl -sSf -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github+json" "https://api.github.com/repos/${{ github.repository }}/releases/latest" || true)
|
LATEST_JSON=$(curl -sSf -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github+json" "https://api.github.com/repos/${{ github.repository }}/releases/latest" || true)
|
||||||
TAG_NAME=$(echo "$LATEST_JSON" | jq -r '.tag_name // empty')
|
TAG_NAME=$(echo "$LATEST_JSON" | jq -r '.tag_name // empty')
|
||||||
if [ -n "$TAG_NAME" ]; then
|
if [ -n "$TAG_NAME" ]; then
|
||||||
echo "Found latest release tag: $TAG_NAME"
|
|
||||||
echo "tag=$TAG_NAME" >> $GITHUB_OUTPUT
|
echo "tag=$TAG_NAME" >> $GITHUB_OUTPUT
|
||||||
exit 0
|
else
|
||||||
fi
|
|
||||||
|
|
||||||
echo "No tag found"
|
|
||||||
echo "tag=" >> $GITHUB_OUTPUT
|
echo "tag=" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Fail if no tag determined
|
- name: Fail if no tag determined
|
||||||
if: ${{ steps.tag.outputs.tag == '' }}
|
if: ${{ steps.tag.outputs.tag == '' }}
|
||||||
run: |
|
run: |
|
||||||
echo "ERROR: No tag determined. Provide a tag when running manually or ensure a release exists."
|
echo "ERROR: No tag determined."
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
linux-release:
|
build-release:
|
||||||
needs: prepare
|
needs: prepare
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@@ -75,7 +61,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install apt deps (jq/zip + dev-libs)
|
- name: Install apt deps
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y \
|
sudo apt-get install -y \
|
||||||
@@ -84,10 +70,11 @@ jobs:
|
|||||||
libclang-dev \
|
libclang-dev \
|
||||||
libasound2-dev \
|
libasound2-dev \
|
||||||
libdbus-1-dev \
|
libdbus-1-dev \
|
||||||
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
- name: Checkout code at tag
|
- name: Checkout code at tag
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.prepare.outputs.tag }}
|
ref: ${{ needs.prepare.outputs.tag }}
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
@@ -95,10 +82,13 @@ jobs:
|
|||||||
- name: Setup Rust toolchain
|
- name: Setup Rust toolchain
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: 1.96.0
|
toolchain: stable
|
||||||
|
cache: false
|
||||||
|
|
||||||
- name: Rust Cache
|
- name: Rust Cache
|
||||||
uses: swatinem/rust-cache@v2
|
uses: swatinem/rust-cache@v2
|
||||||
|
with:
|
||||||
|
prefix-key: "v3-${{ matrix.runner }}"
|
||||||
|
|
||||||
- name: Extract all binary names
|
- name: Extract all binary names
|
||||||
id: cargo-meta
|
id: cargo-meta
|
||||||
@@ -113,13 +103,12 @@ jobs:
|
|||||||
- name: Build all release binaries
|
- name: Build all release binaries
|
||||||
run: cargo build --release --locked
|
run: cargo build --release --locked
|
||||||
|
|
||||||
- name: Package all binaries into one archive
|
- name: Package ZIP archive
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
TAG="${{ needs.prepare.outputs.tag }}"
|
TAG="${{ needs.prepare.outputs.tag }}"
|
||||||
ARCHIVE_NAME="pwsp-${TAG}-linux-${{ matrix.arch }}.zip"
|
ARCHIVE_NAME="pwsp-${TAG}-linux-${{ matrix.arch }}.zip"
|
||||||
echo "Creating archive: $ARCHIVE_NAME"
|
|
||||||
|
|
||||||
FILES=()
|
FILES=()
|
||||||
while IFS= read -r BIN; do
|
while IFS= read -r BIN; do
|
||||||
@@ -127,71 +116,18 @@ jobs:
|
|||||||
FILES+=("target/release/$BIN")
|
FILES+=("target/release/$BIN")
|
||||||
done <<< "${{ steps.cargo-meta.outputs.bin_names }}"
|
done <<< "${{ steps.cargo-meta.outputs.bin_names }}"
|
||||||
|
|
||||||
if [ "${#FILES[@]}" -eq 0 ]; then
|
|
||||||
echo "Error: no binaries were discovered via cargo metadata." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in "${FILES[@]}"; do
|
|
||||||
if [ ! -f "$f" ]; then
|
|
||||||
echo "Error: expected binary not found: $f" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Will add: $f"
|
|
||||||
done
|
|
||||||
|
|
||||||
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
|
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
|
||||||
|
|
||||||
- name: Upload zip archive
|
- name: Upload ZIP artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: zip-archive-${{ matrix.arch }}
|
name: zip-archive-${{ matrix.arch }}
|
||||||
path: pwsp-*.zip
|
path: pwsp-*.zip
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
deb-release:
|
|
||||||
needs: prepare
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- arch: x64
|
|
||||||
runner: ubuntu-latest
|
|
||||||
- arch: arm64
|
|
||||||
runner: ubuntu-24.04-arm
|
|
||||||
fail-fast: false
|
|
||||||
runs-on: ${{ matrix.runner }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install apt deps (dev-libs)
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y \
|
|
||||||
libpipewire-0.3-dev \
|
|
||||||
libclang-dev \
|
|
||||||
libasound2-dev \
|
|
||||||
libdbus-1-dev \
|
|
||||||
pkg-config
|
|
||||||
|
|
||||||
- name: Checkout code at tag
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: ${{ needs.prepare.outputs.tag }}
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Setup Rust toolchain
|
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: 1.96.0
|
|
||||||
|
|
||||||
- name: Rust Cache
|
|
||||||
uses: swatinem/rust-cache@v2
|
|
||||||
|
|
||||||
- name: Build all release binaries
|
|
||||||
run: cargo build --release --locked
|
|
||||||
|
|
||||||
- name: Cache cargo-deb
|
- name: Cache cargo-deb
|
||||||
id: cache-cargo-deb
|
id: cache-cargo-deb
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v6
|
||||||
with:
|
with:
|
||||||
path: ~/.cargo/bin/cargo-deb
|
path: ~/.cargo/bin/cargo-deb
|
||||||
key: ${{ runner.os }}-${{ runner.arch }}-cargo-deb-v1
|
key: ${{ runner.os }}-${{ runner.arch }}-cargo-deb-v1
|
||||||
@@ -200,50 +136,32 @@ jobs:
|
|||||||
if: steps.cache-cargo-deb.outputs.cache-hit != 'true'
|
if: steps.cache-cargo-deb.outputs.cache-hit != 'true'
|
||||||
run: cargo install --locked cargo-deb
|
run: cargo install --locked cargo-deb
|
||||||
|
|
||||||
- name: Create .deb package (release binaries)
|
- name: Create .deb package
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
cargo-deb -p pwsp-gui --no-build
|
cargo-deb -p pwsp-gui --no-build
|
||||||
|
|
||||||
- name: Upload deb package
|
- name: Upload DEB artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: deb-package-${{ matrix.arch }}
|
name: deb-package-${{ matrix.arch }}
|
||||||
path: target/debian/*.deb
|
path: target/debian/*.deb
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
publish-release:
|
publish-release:
|
||||||
needs: [prepare, linux-release, deb-release]
|
needs: [prepare, build-release]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Download zip archive (x64)
|
- name: Download all artifacts
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v8
|
||||||
with:
|
with:
|
||||||
name: zip-archive-x64
|
|
||||||
path: ./dist
|
|
||||||
|
|
||||||
- name: Download zip archive (arm64)
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: zip-archive-arm64
|
|
||||||
path: ./dist
|
|
||||||
|
|
||||||
- name: Download deb package (x64)
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: deb-package-x64
|
|
||||||
path: ./dist
|
|
||||||
|
|
||||||
- name: Download deb package (arm64)
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: deb-package-arm64
|
|
||||||
path: ./dist
|
path: ./dist
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
- name: Upload artifacts to Release
|
- name: Upload artifacts to Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
tag_name: ${{ needs.prepare.outputs.tag }}
|
tag_name: ${{ needs.prepare.outputs.tag }}
|
||||||
@@ -251,6 +169,10 @@ jobs:
|
|||||||
./dist/pwsp-*.zip
|
./dist/pwsp-*.zip
|
||||||
./dist/*.deb
|
./dist/*.deb
|
||||||
|
|
||||||
|
trigger-copr:
|
||||||
|
needs: prepare
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
- name: Install copr-cli
|
- name: Install copr-cli
|
||||||
run: pip install copr-cli
|
run: pip install copr-cli
|
||||||
|
|
||||||
@@ -265,3 +187,86 @@ jobs:
|
|||||||
--commit ${{ needs.prepare.outputs.tag }} \
|
--commit ${{ needs.prepare.outputs.tag }} \
|
||||||
--spec packages/rpm/pwsp.spec \
|
--spec packages/rpm/pwsp.spec \
|
||||||
arabianq/pwsp
|
arabianq/pwsp
|
||||||
|
|
||||||
|
build-apt-repo:
|
||||||
|
needs: [prepare, build-release]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
concurrency: gh-pages-deploy
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
|
||||||
|
- name: Setup GPG
|
||||||
|
id: gpg
|
||||||
|
uses: crazy-max/ghaction-import-gpg@v7
|
||||||
|
with:
|
||||||
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||||
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||||
|
|
||||||
|
- name: Download DEB artifacts
|
||||||
|
uses: actions/download-artifact@v8
|
||||||
|
with:
|
||||||
|
pattern: deb-package-*
|
||||||
|
path: debs
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Checkout existing gh-pages
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
with:
|
||||||
|
ref: gh-pages
|
||||||
|
path: gh-pages-branch
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
|
- name: Generate APT Repository
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y reprepro
|
||||||
|
|
||||||
|
mkdir -p apt-repo
|
||||||
|
|
||||||
|
# Restore existing repository first so we don't lose old packages
|
||||||
|
if [ -d "gh-pages-branch/apt" ]; then
|
||||||
|
cp -r gh-pages-branch/apt/* apt-repo/ || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Always rewrite the config and public key to ensure they are up-to-date
|
||||||
|
mkdir -p apt-repo/conf
|
||||||
|
|
||||||
|
cat <<EOF > apt-repo/conf/distributions
|
||||||
|
Origin: arabianq
|
||||||
|
Label: PipeWire Soundpad
|
||||||
|
Codename: stable
|
||||||
|
Architectures: amd64 arm64
|
||||||
|
Components: main
|
||||||
|
Description: APT Repository for PWSP
|
||||||
|
SignWith: ${{ steps.gpg.outputs.fingerprint }}
|
||||||
|
|
||||||
|
Origin: arabianq
|
||||||
|
Label: PipeWire Soundpad
|
||||||
|
Codename: nightly
|
||||||
|
Architectures: amd64 arm64
|
||||||
|
Components: main
|
||||||
|
Description: Nightly APT Repository for PWSP
|
||||||
|
SignWith: ${{ steps.gpg.outputs.fingerprint }}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
gpg --armor --export ${{ steps.gpg.outputs.fingerprint }} > apt-repo/pubkey.gpg
|
||||||
|
|
||||||
|
cd apt-repo
|
||||||
|
|
||||||
|
for deb in ../debs/*.deb; do
|
||||||
|
if [ -f "$deb" ]; then
|
||||||
|
echo "Adding $deb to APT repository..."
|
||||||
|
reprepro includedeb stable "$deb"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Deploy APT Repo to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v4
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./apt-repo
|
||||||
|
destination_dir: apt
|
||||||
|
keep_files: true
|
||||||
|
|||||||
Generated
+124
-372
@@ -139,9 +139,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "arrayvec"
|
name = "arrayvec"
|
||||||
version = "0.7.7"
|
version = "0.7.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe"
|
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "as-raw-xcb-connection"
|
name = "as-raw-xcb-connection"
|
||||||
@@ -292,29 +292,6 @@ version = "1.5.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "aws-lc-rs"
|
|
||||||
version = "1.17.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad"
|
|
||||||
dependencies = [
|
|
||||||
"aws-lc-sys",
|
|
||||||
"zeroize",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "aws-lc-sys"
|
|
||||||
version = "0.42.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
"cmake",
|
|
||||||
"dunce",
|
|
||||||
"fs_extra",
|
|
||||||
"pkg-config",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "base62"
|
name = "base62"
|
||||||
version = "2.2.4"
|
version = "2.2.4"
|
||||||
@@ -341,7 +318,7 @@ dependencies = [
|
|||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"regex",
|
"regex",
|
||||||
"rustc-hash 2.1.2",
|
"rustc-hash 2.1.3",
|
||||||
"shlex 1.3.0",
|
"shlex 1.3.0",
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
@@ -518,9 +495,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.2.65"
|
version = "1.2.66"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
|
checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"find-msvc-tools",
|
"find-msvc-tools",
|
||||||
"jobserver",
|
"jobserver",
|
||||||
@@ -724,7 +701,7 @@ dependencies = [
|
|||||||
"bitflags 1.3.2",
|
"bitflags 1.3.2",
|
||||||
"core-foundation 0.9.4",
|
"core-foundation 0.9.4",
|
||||||
"core-graphics-types",
|
"core-graphics-types",
|
||||||
"foreign-types",
|
"foreign-types 0.5.0",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -803,9 +780,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-deque"
|
name = "crossbeam-deque"
|
||||||
version = "0.8.6"
|
version = "0.8.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
|
checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-epoch",
|
"crossbeam-epoch",
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
@@ -813,18 +790,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-epoch"
|
name = "crossbeam-epoch"
|
||||||
version = "0.9.18"
|
version = "0.9.20"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-utils"
|
name = "crossbeam-utils"
|
||||||
version = "0.8.21"
|
version = "0.8.22"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crunchy"
|
name = "crunchy"
|
||||||
@@ -924,12 +901,6 @@ version = "0.1.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
|
checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "dunce"
|
|
||||||
version = "1.0.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ecolor"
|
name = "ecolor"
|
||||||
version = "0.35.0"
|
version = "0.35.0"
|
||||||
@@ -1314,12 +1285,6 @@ dependencies = [
|
|||||||
"miniz_oxide",
|
"miniz_oxide",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "fnv"
|
|
||||||
version = "1.0.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "foldhash"
|
name = "foldhash"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@@ -1358,6 +1323,15 @@ dependencies = [
|
|||||||
"ttf-parser",
|
"ttf-parser",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "foreign-types"
|
||||||
|
version = "0.3.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
||||||
|
dependencies = [
|
||||||
|
"foreign-types-shared 0.1.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "foreign-types"
|
name = "foreign-types"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
@@ -1365,7 +1339,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
|
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"foreign-types-macros",
|
"foreign-types-macros",
|
||||||
"foreign-types-shared",
|
"foreign-types-shared 0.3.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1379,6 +1353,12 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "foreign-types-shared"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "foreign-types-shared"
|
name = "foreign-types-shared"
|
||||||
version = "0.3.1"
|
version = "0.3.1"
|
||||||
@@ -1394,12 +1374,6 @@ dependencies = [
|
|||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "fs_extra"
|
|
||||||
version = "1.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "funty"
|
name = "funty"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
@@ -1440,12 +1414,6 @@ dependencies = [
|
|||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "futures-sink"
|
|
||||||
version = "0.3.32"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-task"
|
name = "futures-task"
|
||||||
version = "0.3.32"
|
version = "0.3.32"
|
||||||
@@ -1481,10 +1449,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
|
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"js-sys",
|
|
||||||
"libc",
|
"libc",
|
||||||
"wasi",
|
"wasi",
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1494,11 +1460,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"js-sys",
|
|
||||||
"libc",
|
"libc",
|
||||||
"r-efi 5.3.0",
|
"r-efi 5.3.0",
|
||||||
"wasip2",
|
"wasip2",
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1656,25 +1620,6 @@ dependencies = [
|
|||||||
"euclid",
|
"euclid",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "h2"
|
|
||||||
version = "0.4.15"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155"
|
|
||||||
dependencies = [
|
|
||||||
"atomic-waker",
|
|
||||||
"bytes",
|
|
||||||
"fnv",
|
|
||||||
"futures-core",
|
|
||||||
"futures-sink",
|
|
||||||
"http",
|
|
||||||
"indexmap",
|
|
||||||
"slab",
|
|
||||||
"tokio",
|
|
||||||
"tokio-util",
|
|
||||||
"tracing",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "half"
|
name = "half"
|
||||||
version = "2.7.1"
|
version = "2.7.1"
|
||||||
@@ -1800,7 +1745,6 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"h2",
|
|
||||||
"http",
|
"http",
|
||||||
"http-body",
|
"http-body",
|
||||||
"httparse",
|
"httparse",
|
||||||
@@ -1812,17 +1756,18 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hyper-rustls"
|
name = "hyper-tls"
|
||||||
version = "0.27.9"
|
version = "0.6.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
|
checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"http",
|
"bytes",
|
||||||
|
"http-body-util",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"rustls",
|
"native-tls",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-native-tls",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1844,11 +1789,9 @@ dependencies = [
|
|||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"socket2",
|
"socket2",
|
||||||
"system-configuration",
|
|
||||||
"tokio",
|
"tokio",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows-registry",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2102,11 +2045,11 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jobserver"
|
name = "jobserver"
|
||||||
version = "0.1.34"
|
version = "0.1.35"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
|
checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom 0.3.4",
|
"getrandom 0.4.3",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -2251,12 +2194,6 @@ version = "0.4.33"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
|
checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "lru-slab"
|
|
||||||
version = "0.1.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mach2"
|
name = "mach2"
|
||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
@@ -2367,6 +2304,23 @@ dependencies = [
|
|||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "native-tls"
|
||||||
|
version = "0.2.18"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"log",
|
||||||
|
"openssl",
|
||||||
|
"openssl-probe",
|
||||||
|
"openssl-sys",
|
||||||
|
"schannel",
|
||||||
|
"security-framework",
|
||||||
|
"security-framework-sys",
|
||||||
|
"tempfile",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk"
|
name = "ndk"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
@@ -2445,9 +2399,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-bigint"
|
name = "num-bigint"
|
||||||
version = "0.4.6"
|
version = "0.4.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
|
checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
@@ -2872,12 +2826,49 @@ dependencies = [
|
|||||||
"zbus",
|
"zbus",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "openssl"
|
||||||
|
version = "0.10.81"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 2.13.0",
|
||||||
|
"cfg-if",
|
||||||
|
"foreign-types 0.3.2",
|
||||||
|
"libc",
|
||||||
|
"openssl-macros",
|
||||||
|
"openssl-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "openssl-macros"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-probe"
|
name = "openssl-probe"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
|
checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "openssl-sys"
|
||||||
|
version = "0.9.117"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"pkg-config",
|
||||||
|
"vcpkg",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "option-ext"
|
name = "option-ext"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@@ -2978,7 +2969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
|
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_shared",
|
"phf_shared",
|
||||||
"rand 0.8.6",
|
"rand",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3145,15 +3136,6 @@ dependencies = [
|
|||||||
"zerovec",
|
"zerovec",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ppv-lite86"
|
|
||||||
version = "0.2.21"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
|
||||||
dependencies = [
|
|
||||||
"zerocopy",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro-crate"
|
name = "proc-macro-crate"
|
||||||
version = "3.5.0"
|
version = "3.5.0"
|
||||||
@@ -3180,7 +3162,7 @@ checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pwsp-cli"
|
name = "pwsp-cli"
|
||||||
version = "1.12.2"
|
version = "1.12.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@@ -3191,7 +3173,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pwsp-daemon"
|
name = "pwsp-daemon"
|
||||||
version = "1.12.2"
|
version = "1.12.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@@ -3203,7 +3185,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pwsp-gui"
|
name = "pwsp-gui"
|
||||||
version = "1.12.2"
|
version = "1.12.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"eframe",
|
"eframe",
|
||||||
@@ -3227,7 +3209,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pwsp-lib"
|
name = "pwsp-lib"
|
||||||
version = "1.12.2"
|
version = "1.12.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@@ -3246,9 +3228,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pxfm"
|
name = "pxfm"
|
||||||
version = "0.1.29"
|
version = "0.1.30"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f"
|
checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-error"
|
name = "quick-error"
|
||||||
@@ -3265,62 +3247,6 @@ dependencies = [
|
|||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quinn"
|
|
||||||
version = "0.11.11"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
|
|
||||||
dependencies = [
|
|
||||||
"bytes",
|
|
||||||
"cfg_aliases",
|
|
||||||
"pin-project-lite",
|
|
||||||
"quinn-proto",
|
|
||||||
"quinn-udp",
|
|
||||||
"rustc-hash 2.1.2",
|
|
||||||
"rustls",
|
|
||||||
"socket2",
|
|
||||||
"thiserror 2.0.18",
|
|
||||||
"tokio",
|
|
||||||
"tracing",
|
|
||||||
"web-time",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quinn-proto"
|
|
||||||
version = "0.11.15"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e"
|
|
||||||
dependencies = [
|
|
||||||
"aws-lc-rs",
|
|
||||||
"bytes",
|
|
||||||
"getrandom 0.3.4",
|
|
||||||
"lru-slab",
|
|
||||||
"rand 0.9.4",
|
|
||||||
"ring",
|
|
||||||
"rustc-hash 2.1.2",
|
|
||||||
"rustls",
|
|
||||||
"rustls-pki-types",
|
|
||||||
"slab",
|
|
||||||
"thiserror 2.0.18",
|
|
||||||
"tinyvec",
|
|
||||||
"tracing",
|
|
||||||
"web-time",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quinn-udp"
|
|
||||||
version = "0.5.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
|
|
||||||
dependencies = [
|
|
||||||
"cfg_aliases",
|
|
||||||
"libc",
|
|
||||||
"once_cell",
|
|
||||||
"socket2",
|
|
||||||
"tracing",
|
|
||||||
"windows-sys 0.60.2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.46"
|
version = "1.0.46"
|
||||||
@@ -3354,27 +3280,7 @@ version = "0.8.6"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
|
checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand_core 0.6.4",
|
"rand_core",
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand"
|
|
||||||
version = "0.9.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
|
|
||||||
dependencies = [
|
|
||||||
"rand_chacha",
|
|
||||||
"rand_core 0.9.5",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_chacha"
|
|
||||||
version = "0.9.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
|
|
||||||
dependencies = [
|
|
||||||
"ppv-lite86",
|
|
||||||
"rand_core 0.9.5",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3383,15 +3289,6 @@ version = "0.6.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_core"
|
|
||||||
version = "0.9.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
|
|
||||||
dependencies = [
|
|
||||||
"getrandom 0.3.4",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "raw-window-handle"
|
name = "raw-window-handle"
|
||||||
version = "0.6.2"
|
version = "0.6.2"
|
||||||
@@ -3509,27 +3406,22 @@ checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"base64",
|
"base64",
|
||||||
"bytes",
|
"bytes",
|
||||||
"encoding_rs",
|
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"h2",
|
|
||||||
"http",
|
"http",
|
||||||
"http-body",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-rustls",
|
"hyper-tls",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"log",
|
"log",
|
||||||
"mime",
|
"native-tls",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"quinn",
|
|
||||||
"rustls",
|
|
||||||
"rustls-pki-types",
|
"rustls-pki-types",
|
||||||
"rustls-platform-verifier",
|
|
||||||
"sync_wrapper",
|
"sync_wrapper",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-native-tls",
|
||||||
"tower",
|
"tower",
|
||||||
"tower-http",
|
"tower-http",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
@@ -3563,20 +3455,6 @@ dependencies = [
|
|||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ring"
|
|
||||||
version = "0.17.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
"cfg-if",
|
|
||||||
"getrandom 0.2.17",
|
|
||||||
"libc",
|
|
||||||
"untrusted",
|
|
||||||
"windows-sys 0.52.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rodio"
|
name = "rodio"
|
||||||
version = "0.22.2"
|
version = "0.22.2"
|
||||||
@@ -3652,9 +3530,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-hash"
|
name = "rustc-hash"
|
||||||
version = "2.1.2"
|
version = "2.1.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
|
checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc_version"
|
name = "rustc_version"
|
||||||
@@ -3691,86 +3569,20 @@ dependencies = [
|
|||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustls"
|
|
||||||
version = "0.23.41"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f"
|
|
||||||
dependencies = [
|
|
||||||
"aws-lc-rs",
|
|
||||||
"once_cell",
|
|
||||||
"rustls-pki-types",
|
|
||||||
"rustls-webpki",
|
|
||||||
"subtle",
|
|
||||||
"zeroize",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustls-native-certs"
|
|
||||||
version = "0.8.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d"
|
|
||||||
dependencies = [
|
|
||||||
"openssl-probe",
|
|
||||||
"rustls-pki-types",
|
|
||||||
"schannel",
|
|
||||||
"security-framework",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-pki-types"
|
name = "rustls-pki-types"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046"
|
checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"web-time",
|
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustls-platform-verifier"
|
|
||||||
version = "0.7.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0"
|
|
||||||
dependencies = [
|
|
||||||
"core-foundation 0.10.1",
|
|
||||||
"core-foundation-sys",
|
|
||||||
"jni",
|
|
||||||
"log",
|
|
||||||
"once_cell",
|
|
||||||
"rustls",
|
|
||||||
"rustls-native-certs",
|
|
||||||
"rustls-platform-verifier-android",
|
|
||||||
"rustls-webpki",
|
|
||||||
"security-framework",
|
|
||||||
"security-framework-sys",
|
|
||||||
"webpki-root-certs",
|
|
||||||
"windows-sys 0.61.2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustls-platform-verifier-android"
|
|
||||||
version = "0.1.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustls-webpki"
|
|
||||||
version = "0.103.13"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
|
|
||||||
dependencies = [
|
|
||||||
"aws-lc-rs",
|
|
||||||
"ring",
|
|
||||||
"rustls-pki-types",
|
|
||||||
"untrusted",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustversion"
|
name = "rustversion"
|
||||||
version = "1.0.22"
|
version = "1.0.23"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ryu"
|
name = "ryu"
|
||||||
@@ -4115,12 +3927,6 @@ version = "0.11.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "subtle"
|
|
||||||
version = "2.6.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "symphonia"
|
name = "symphonia"
|
||||||
version = "0.5.5"
|
version = "0.5.5"
|
||||||
@@ -4367,27 +4173,6 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "system-configuration"
|
|
||||||
version = "0.7.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.13.0",
|
|
||||||
"core-foundation 0.9.4",
|
|
||||||
"system-configuration-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "system-configuration-sys"
|
|
||||||
version = "0.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
|
|
||||||
dependencies = [
|
|
||||||
"core-foundation-sys",
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "system-deps"
|
name = "system-deps"
|
||||||
version = "7.0.8"
|
version = "7.0.8"
|
||||||
@@ -4545,25 +4330,12 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio-rustls"
|
name = "tokio-native-tls"
|
||||||
version = "0.26.4"
|
version = "0.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
|
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustls",
|
"native-tls",
|
||||||
"tokio",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "tokio-util"
|
|
||||||
version = "0.7.18"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
|
|
||||||
dependencies = [
|
|
||||||
"bytes",
|
|
||||||
"futures-core",
|
|
||||||
"futures-sink",
|
|
||||||
"pin-project-lite",
|
|
||||||
"tokio",
|
"tokio",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -4768,7 +4540,7 @@ version = "0.5.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90"
|
checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustc-hash 2.1.2",
|
"rustc-hash 2.1.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -4818,12 +4590,6 @@ version = "0.2.11"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
|
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "untrusted"
|
|
||||||
version = "0.9.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "url"
|
name = "url"
|
||||||
version = "2.5.8"
|
version = "2.5.8"
|
||||||
@@ -4854,6 +4620,12 @@ dependencies = [
|
|||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "vcpkg"
|
||||||
|
version = "0.2.15"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vello_common"
|
name = "vello_common"
|
||||||
version = "0.0.9"
|
version = "0.0.9"
|
||||||
@@ -5154,15 +4926,6 @@ dependencies = [
|
|||||||
"web-sys",
|
"web-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "webpki-root-certs"
|
|
||||||
version = "1.0.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267"
|
|
||||||
dependencies = [
|
|
||||||
"rustls-pki-types",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "weezl"
|
name = "weezl"
|
||||||
version = "0.1.12"
|
version = "0.1.12"
|
||||||
@@ -5374,17 +5137,6 @@ dependencies = [
|
|||||||
"windows-link",
|
"windows-link",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-registry"
|
|
||||||
version = "0.6.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"
|
|
||||||
dependencies = [
|
|
||||||
"windows-link",
|
|
||||||
"windows-result",
|
|
||||||
"windows-strings",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows-result"
|
name = "windows-result"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
@@ -5816,18 +5568,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy"
|
name = "zerocopy"
|
||||||
version = "0.8.52"
|
version = "0.8.53"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
|
checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zerocopy-derive",
|
"zerocopy-derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy-derive"
|
name = "zerocopy-derive"
|
||||||
version = "0.8.52"
|
version = "0.8.53"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
|
checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|||||||
+8
-3
@@ -8,7 +8,7 @@ members = [
|
|||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "1.12.2"
|
version = "1.12.4"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
authors = ["arabian"]
|
authors = ["arabian"]
|
||||||
homepage = "https://pwsp.arabianq.ru"
|
homepage = "https://pwsp.arabianq.ru"
|
||||||
@@ -73,13 +73,18 @@ egui_extras = "0.35.0"
|
|||||||
egui_material_icons = "0.7.0"
|
egui_material_icons = "0.7.0"
|
||||||
egui_dnd = "0.16.0"
|
egui_dnd = "0.16.0"
|
||||||
|
|
||||||
reqwest = "0.13.4"
|
reqwest = { version = "0.13.4", default-features = false, features = ["native-tls"] }
|
||||||
percent-encoding = "2.3.2"
|
percent-encoding = "2.3.2"
|
||||||
|
|
||||||
|
[profile.dev]
|
||||||
|
|
||||||
|
[profile.dev.package."*"]
|
||||||
|
opt-level = 3
|
||||||
|
debug = false
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
strip = true
|
strip = true
|
||||||
lto = true
|
lto = true
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
opt-level = "z"
|
opt-level = "z"
|
||||||
panic = "abort"
|
panic = "abort"
|
||||||
|
|
||||||
|
|||||||
@@ -1,118 +1,149 @@
|
|||||||
<div align="center">
|
# PipeWire Soundpad (PWSP) 🎵
|
||||||
<h1>🎵 PipeWire Soundpad (PWSP)</h1>
|
|
||||||
<p><b>A simple, modern, and powerful soundboard for Linux, written in Rust.</b></p>
|
|
||||||
<img src="pwsp-gui/assets/screenshot.png" alt="PWSP Screenshot" width="700"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
## 🌟 Overview
|

|
||||||
**PipeWire Soundpad (PWSP)** is a graphical soundboard application that routes audio directly to your virtual microphone using **PipeWire**. It provides an intuitive interface for managing your audio collection, making it an ideal tool for gamers, streamers, and anyone looking to inject sound effects into voice chats on platforms like Discord, Zoom, or TeamSpeak.
|
|
||||||
|
|
||||||
## ✨ Key Features
|
[🇷🇺 Читать на русском](README.ru.md) | [🇺🇸 Read in English](README.md)
|
||||||
* **🎙️ Virtual Microphone Output:** Seamlessly mixes your microphone input with sound effects by automatically managing PipeWire virtual devices.
|
|
||||||
* **🎵 Multi-Format Support:** Plays popular audio formats including `mp3`, `wav`, `ogg`, `flac`, `mp4`, and `aac`.
|
|
||||||
* **⚡ Global Hotkeys:** Trigger sounds instantly from anywhere, even when the app is running in the background.
|
|
||||||
* **📂 Smart Collection Management:** Drag-and-drop folders, quick search, and collapsible tracks to keep your library organized.
|
|
||||||
* **🎛️ Advanced Playback Controls:** Individual volume sliders, play/pause, position scrubbing, and concurrent multi-track playback.
|
|
||||||
* **🔌 Plug & Play:** Automatically detects when an input device is connected or disconnected and handles linking/unlinking on the fly.
|
|
||||||
* **🖥️ Modern GUI:** Clean, responsive, and lightweight interface powered by [egui](https://egui.rs/).
|
|
||||||
|
|
||||||
## ⚙️ Architecture
|
[](https://github.com/arabianq/pipewire-soundpad/actions)
|
||||||
PWSP is built with a client-server model to ensure stability and separation of concerns:
|
[](https://opensource.org/licenses/MIT)
|
||||||
* **`pwsp-daemon`**: The background engine. It runs silently, managing PipeWire virtual devices, audio routing, and playback.
|
[](https://github.com/arabianq/pipewire-soundpad/releases/latest)
|
||||||
* **`pwsp-gui`**: The graphical interface. Communicates with the daemon via a Unix socket to control playback and settings.
|
[](https://pipewire.org/)
|
||||||
* **`pwsp-cli`**: The command-line tool. Perfect for scripting, hotkey binding, or quick terminal-based control.
|
|
||||||
|
**PipeWire Soundpad (PWSP)** is a modern, low-latency application that lets you play audio files directly through your microphone. Designed specifically for Linux, it leverages the power of PipeWire to achieve native integration without the need for Pulseaudio bridges or complex virtual sinks.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✨ Features
|
||||||
|
|
||||||
|
- **Native PipeWire Integration:** Direct communication with the PipeWire API for the lowest possible latency.
|
||||||
|
- **Modular Architecture:** Consists of a background `daemon`, a command-line interface (`cli`), and a graphical user interface (`gui`).
|
||||||
|
- **Modern GUI:** Built with `egui`, supporting both Wayland and X11 seamlessly.
|
||||||
|
- **Global Hotkeys:** Powered by `evdev`, allowing you to play sounds from anywhere.
|
||||||
|
- **Broad Audio Support:** Powered by `rodio` and `symphonia` to support a wide range of audio formats.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Installation
|
## 🚀 Installation
|
||||||
|
|
||||||
|
We provide multiple ways to install PWSP, including stable releases and rolling "nightly" builds directly from the `main` branch.
|
||||||
|
|
||||||
### 📦 Flatpak (Recommended)
|
### 📦 Flatpak (Recommended)
|
||||||
Install PWSP via Flatpak from our custom repository:
|
|
||||||
|
Add our official OSTree repository and install the application:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
flatpak remote-add --user --if-not-exists pwsp-repo https://arabianq.github.io/pipewire-soundpad/index.flatpakrepo
|
# Add the repository
|
||||||
|
flatpak remote-add --if-not-exists pwsp https://arabianq.github.io/pipewire-soundpad/pwsp.flatpakrepo
|
||||||
|
|
||||||
# Install stable version
|
# Install the Stable version
|
||||||
flatpak install --user arabianq-repo ru.arabianq.pwsp//stable
|
flatpak install pwsp ru.arabianq.pwsp//stable
|
||||||
|
|
||||||
# Or install the nightly version (latest commit)
|
# OR Install the Nightly version (rolling updates)
|
||||||
flatpak install --user arabianq-repo ru.arabianq.pwsp//nightly
|
flatpak install pwsp ru.arabianq.pwsp//nightly
|
||||||
```
|
```
|
||||||
|
|
||||||
### 🐧 Linux Packages
|
### 🟠 Debian / Ubuntu (APT Repository)
|
||||||
**Fedora (and derivatives):**
|
|
||||||
|
We maintain an official APT repository for seamless updates via `apt`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Download the public GPG key
|
||||||
|
wget -O- https://arabianq.github.io/pipewire-soundpad/apt/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/pwsp.gpg
|
||||||
|
|
||||||
|
# 2. Add the repository (Choose STABLE or NIGHTLY)
|
||||||
|
# For Stable:
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipewire-soundpad/apt/ stable main" | sudo tee /etc/apt/sources.list.d/pwsp.list
|
||||||
|
|
||||||
|
# For Nightly:
|
||||||
|
# echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipewire-soundpad/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/pwsp.list
|
||||||
|
|
||||||
|
# 3. Update and install
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install pwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🐧 Fedora / RHEL (COPR)
|
||||||
|
|
||||||
|
Available via the Fedora COPR repository:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf copr enable arabianq/pwsp
|
sudo dnf copr enable arabianq/pwsp
|
||||||
sudo dnf install pwsp
|
sudo dnf install pwsp
|
||||||
```
|
```
|
||||||
|
|
||||||
**Arch Linux (AUR):**
|
### ⚙️ Manual / Standalone
|
||||||
|
|
||||||
|
You can manually download `.deb` packages or standalone `.zip` binaries from the [Releases page](https://github.com/arabianq/pipewire-soundpad/releases).
|
||||||
|
|
||||||
|
### 🦀 Build from Source
|
||||||
|
|
||||||
|
Make sure you have Rust, Cargo, and the required dependencies (`libpipewire-0.3-dev`, `libclang-dev`, `libasound2-dev`, `libdbus-1-dev`) installed.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
paru -S pwsp-bin # or 'pwsp' to build from source
|
|
||||||
```
|
|
||||||
|
|
||||||
**Debian / Ubuntu:**
|
|
||||||
Download pre-built `.deb` packages or standalone binaries from the [Releases page](https://github.com/arabianq/pipewire-soundpad/releases).
|
|
||||||
|
|
||||||
### 🦀 Cargo / Source Build
|
|
||||||
```bash
|
|
||||||
cargo install pwsp
|
|
||||||
|
|
||||||
# OR clone and build manually:
|
|
||||||
git clone https://github.com/arabianq/pipewire-soundpad.git
|
git clone https://github.com/arabianq/pipewire-soundpad.git
|
||||||
cd pipewire-soundpad
|
cd pipewire-soundpad
|
||||||
cargo build --release
|
cargo build --release --locked
|
||||||
```
|
```
|
||||||
*(Note: Requires Rust toolchain and PipeWire running on your system).*
|
|
||||||
|
The binaries will be located in `target/release/`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🎮 Usage
|
## 🎮 Usage
|
||||||
|
|
||||||
### 1. Start the Daemon
|
### 1. Start the Daemon
|
||||||
Before using the GUI or CLI, the daemon must be running in the background.
|
|
||||||
|
PWSP operates via a background daemon that handles the audio routing.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Recommended: Start and enable via systemd (starts on login)
|
# Run the daemon
|
||||||
systemctl --user enable --now pwsp-daemon
|
pwsp-daemon
|
||||||
|
|
||||||
# Manual start (if not using systemd):
|
|
||||||
pwsp-daemon &
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Using the GUI
|
_(Tip: If installed via package managers, a systemd user service is provided. You can enable it with `systemctl --user enable --now pwsp-daemon.service`)_
|
||||||
1. **Add Sounds:** Click the **"+"** button to add a directory containing your audio files.
|
|
||||||
2. **Select Mic:** Choose your physical microphone from the dropdown. PWSP will instantly create a virtual microphone combining your voice and the soundboard.
|
### 2. Launch the GUI
|
||||||
3. **Play:** Click any sound to play it, adjust its volume, or assign a hotkey for quick access.
|
|
||||||
|
Simply run the graphical interface to manage and play your sounds:
|
||||||
|
|
||||||
### 3. Using the CLI
|
|
||||||
Control the daemon directly from your terminal:
|
|
||||||
```bash
|
```bash
|
||||||
pwsp-cli action play /path/to/sound.mp3
|
pwsp-gui
|
||||||
pwsp-cli get volume
|
```
|
||||||
pwsp-cli set position 20
|
|
||||||
pwsp-cli --help # View all commands
|
### 3. Use the CLI
|
||||||
|
|
||||||
|
You can also interact with the daemon directly via the command line:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-cli play /path/to/sound.mp3
|
||||||
|
pwsp-cli stop
|
||||||
|
pwsp-cli status
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⌨️ Shortcuts & Controls
|
## 📚 Documentation & DeepWiki
|
||||||
|
|
||||||
| Action | Keyboard | Mouse |
|
For advanced configuration, troubleshooting, architecture details, and custom setups, please visit our official Wiki:
|
||||||
| :----------------------------------- | :--------------------- | :------------------- |
|
|
||||||
| **Play Track** (Stops others) | | `Left Click` |
|
[](https://deepwiki.com/arabianq/pipewire-soundpad)
|
||||||
| **Add Track** (Plays simultaneously) | | `Ctrl + Left Click` |
|
|
||||||
| **Replace Last Track** | | `Shift + Left Click` |
|
|
||||||
| **Pause / Resume** | `Space` | |
|
|
||||||
| **Stop All Tracks** | `Backspace` | |
|
|
||||||
| **Open / Close Settings** | `I` | |
|
|
||||||
| **Search** | `/` | |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🤝 Contributing
|
## 🤝 Contributing
|
||||||
Contributions, issues, and feature requests are welcome! Feel free to check out the [issues page](https://github.com/arabianq/pipewire-soundpad/issues).
|
|
||||||
|
|
||||||
[](https://deepwiki.com/arabianq/pipewire-soundpad)
|
Contributions, issues, and feature requests are welcome!
|
||||||
|
|
||||||
## 📜 License
|
1. Fork the project.
|
||||||
This project is licensed under the [MIT License](LICENSE).
|
2. Create your feature branch (`git checkout -b feat/amazing-feature`).
|
||||||
|
3. Commit your changes (`git commit -m 'Add some amazing feature'`).
|
||||||
|
4. Push to the branch (`git push origin feat/amazing-feature`).
|
||||||
|
5. Open a Pull Request.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 License
|
||||||
|
|
||||||
|
Distributed under the MIT License. See `LICENSE` for more information.
|
||||||
|
|
||||||
|
_Built with ❤️ for the Linux community._
|
||||||
|
|||||||
+149
@@ -0,0 +1,149 @@
|
|||||||
|
# PipeWire Soundpad (PWSP) 🎵
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
[🇷🇺 Читать на русском](README.ru.md) | [🇺🇸 Read in English](README.md)
|
||||||
|
|
||||||
|
[](https://github.com/arabianq/pipewire-soundpad/actions)
|
||||||
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
[](https://github.com/arabianq/pipewire-soundpad/releases/latest)
|
||||||
|
[](https://pipewire.org/)
|
||||||
|
|
||||||
|
**PipeWire Soundpad (PWSP)** — это современное приложение с низкой задержкой, которое позволяет воспроизводить аудиофайлы прямо в ваш микрофон. Разработано специально для Linux с использованием мощи PipeWire для достижения нативной интеграции без использования мостов Pulseaudio или сложных виртуальных устройств.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✨ Возможности
|
||||||
|
|
||||||
|
- **Нативная интеграция с PipeWire:** Прямое взаимодействие с PipeWire API для минимальной задержки.
|
||||||
|
- **Модульная архитектура:** Состоит из фонового демона (`daemon`), интерфейса командной строки (`cli`) и графического интерфейса (`gui`).
|
||||||
|
- **Современный GUI:** Построен на `egui`, плавно работает как на Wayland, так и на X11.
|
||||||
|
- **Глобальные горячие клавиши:** Работают через `evdev`, позволяя воспроизводить звуки из любого окна.
|
||||||
|
- **Широкая поддержка форматов:** Использует `rodio` и `symphonia` для поддержки большинства аудиоформатов.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Установка
|
||||||
|
|
||||||
|
Мы предоставляем несколько способов установки PWSP, включая стабильные релизы и постоянно обновляемые "nightly" сборки напрямую из ветки `main`.
|
||||||
|
|
||||||
|
### 📦 Flatpak (Рекомендуется)
|
||||||
|
|
||||||
|
Добавьте наш официальный OSTree репозиторий и установите приложение:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Добавьте репозиторий
|
||||||
|
flatpak remote-add --if-not-exists pwsp https://arabianq.github.io/pipewire-soundpad/pwsp.flatpakrepo
|
||||||
|
|
||||||
|
# Установите стабильную (Stable) версию
|
||||||
|
flatpak install pwsp ru.arabianq.pwsp//stable
|
||||||
|
|
||||||
|
# ИЛИ установите Nightly версию (самые свежие обновления)
|
||||||
|
flatpak install pwsp ru.arabianq.pwsp//nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🟠 Debian / Ubuntu (APT Репозиторий)
|
||||||
|
|
||||||
|
Мы поддерживаем официальный APT-репозиторий для бесшовных обновлений через `apt`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Скачайте публичный GPG ключ
|
||||||
|
wget -O- https://arabianq.github.io/pipewire-soundpad/apt/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/pwsp.gpg
|
||||||
|
|
||||||
|
# 2. Добавьте репозиторий (Выберите STABLE или NIGHTLY)
|
||||||
|
# Для Stable:
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipewire-soundpad/apt/ stable main" | sudo tee /etc/apt/sources.list.d/pwsp.list
|
||||||
|
|
||||||
|
# Для Nightly:
|
||||||
|
# echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipewire-soundpad/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/pwsp.list
|
||||||
|
|
||||||
|
# 3. Обновите индексы и установите
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install pwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🐧 Fedora / RHEL (COPR)
|
||||||
|
|
||||||
|
Доступно через репозиторий Fedora COPR:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf copr enable arabianq/pwsp
|
||||||
|
sudo dnf install pwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
### ⚙️ Ручная установка
|
||||||
|
|
||||||
|
Вы можете вручную скачать пакеты `.deb` или готовые бинарники `.zip` на [странице релизов](https://github.com/arabianq/pipewire-soundpad/releases).
|
||||||
|
|
||||||
|
### 🦀 Сборка из исходников
|
||||||
|
|
||||||
|
Убедитесь, что у вас установлены Rust, Cargo и необходимые зависимости (`libpipewire-0.3-dev`, `libclang-dev`, `libasound2-dev`, `libdbus-1-dev`).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/arabianq/pipewire-soundpad.git
|
||||||
|
cd pipewire-soundpad
|
||||||
|
cargo build --release --locked
|
||||||
|
```
|
||||||
|
|
||||||
|
Собранные бинарники будут находиться в папке `target/release/`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎮 Использование
|
||||||
|
|
||||||
|
### 1. Запуск демона
|
||||||
|
|
||||||
|
PWSP работает через фоновый демон, который маршрутизирует аудио.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Запуск демона
|
||||||
|
pwsp-daemon
|
||||||
|
```
|
||||||
|
|
||||||
|
_(Подсказка: Если вы установили программу через пакетный менеджер, она включает пользовательский systemd-сервис. Вы можете включить его командой: `systemctl --user enable --now pwsp-daemon.service`)_
|
||||||
|
|
||||||
|
### 2. Запуск GUI
|
||||||
|
|
||||||
|
Просто запустите графический интерфейс для управления и воспроизведения звуков:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-gui
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Использование CLI
|
||||||
|
|
||||||
|
Вы также можете взаимодействовать с демоном напрямую через командную строку:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-cli play /path/to/sound.mp3
|
||||||
|
pwsp-cli stop
|
||||||
|
pwsp-cli status
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📚 Документация и DeepWiki
|
||||||
|
|
||||||
|
Для детальной настройки, решения проблем, описания архитектуры и кастомных конфигураций, пожалуйста, посетите нашу официальную Wiki:
|
||||||
|
|
||||||
|
[](https://deepwiki.com/arabianq/pipewire-soundpad)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 Вклад в проект (Contributing)
|
||||||
|
|
||||||
|
Будем рады вашей помощи, баг-репортам и идеям!
|
||||||
|
|
||||||
|
1. Сделайте Fork проекта.
|
||||||
|
2. Создайте свою ветку (`git checkout -b feat/amazing-feature`).
|
||||||
|
3. Закоммитьте изменения (`git commit -m 'Add some amazing feature'`).
|
||||||
|
4. Запушьте ветку (`git push origin feat/amazing-feature`).
|
||||||
|
5. Откройте Pull Request.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 Лицензия
|
||||||
|
|
||||||
|
Распространяется под лицензией MIT. Подробнее см. в файле `LICENSE`.
|
||||||
|
|
||||||
|
_Сделано с ❤️ для сообщества Linux._
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
pkgbase = pwsp-bin
|
pkgbase = pwsp-bin
|
||||||
pkgdesc = Lets you play audio files through your microphone (Pre-built binaries)
|
pkgdesc = Lets you play audio files through your microphone (Pre-built binaries)
|
||||||
pkgver = 1.12.2
|
pkgver = 1.12.4
|
||||||
pkgrel = 1
|
pkgrel = 1
|
||||||
url = https://github.com/arabianq/pipewire-soundpad
|
url = https://github.com/arabianq/pipewire-soundpad
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
@@ -10,11 +10,11 @@ pkgbase = pwsp-bin
|
|||||||
depends = alsa-lib
|
depends = alsa-lib
|
||||||
provides = pwsp
|
provides = pwsp
|
||||||
conflicts = pwsp
|
conflicts = pwsp
|
||||||
source = pipewire-soundpad-1.12.2.tar.gz :: https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.2.tar.gz
|
source = pipewire-soundpad-1.12.4.tar.gz :: https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.4.tar.gz
|
||||||
sha256sums = SKIP
|
sha256sums = SKIP
|
||||||
source_x86_64 = pwsp-1.12.2-x86_64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.2/pwsp-v1.12.2-linux-x64.zip
|
source_x86_64 = pwsp-1.12.4-x86_64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.4/pwsp-v1.12.4-linux-x64.zip
|
||||||
sha256sums_x86_64 = SKIP
|
sha256sums_x86_64 = SKIP
|
||||||
source_aarch64 = pwsp-1.12.2-aarch64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.2/pwsp-v1.12.2-linux-arm64.zip
|
source_aarch64 = pwsp-1.12.4-aarch64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.4/pwsp-v1.12.4-linux-arm64.zip
|
||||||
sha256sums_aarch64 = SKIP
|
sha256sums_aarch64 = SKIP
|
||||||
|
|
||||||
pkgname = pwsp-bin
|
pkgname = pwsp-bin
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# Maintainer: Alexander Tarasov <a.tevg@ya.ru>
|
# Maintainer: Alexander Tarasov <a.tevg@ya.ru>
|
||||||
pkgname=pwsp-bin
|
pkgname=pwsp-bin
|
||||||
_pkgname=pipewire-soundpad
|
_pkgname=pipewire-soundpad
|
||||||
pkgver=1.12.2
|
pkgver=1.12.4
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Lets you play audio files through your microphone (Pre-built binaries)"
|
pkgdesc="Lets you play audio files through your microphone (Pre-built binaries)"
|
||||||
arch=('x86_64' 'aarch64')
|
arch=('x86_64' 'aarch64')
|
||||||
url="https://github.com/arabianq/pipewire-soundpad"
|
url="https://github.com/arabianq/pipewire-soundpad"
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
depends=('pipewire' 'alsa-lib')
|
depends=('pipewire' 'alsa-lib' 'openssl')
|
||||||
provides=('pwsp')
|
provides=('pwsp')
|
||||||
conflicts=('pwsp')
|
conflicts=('pwsp')
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
pkgbase = pwsp
|
pkgbase = pwsp
|
||||||
pkgdesc = Lets you play audio files through your microphone
|
pkgdesc = Lets you play audio files through your microphone
|
||||||
pkgver = 1.12.2
|
pkgver = 1.12.4
|
||||||
pkgrel = 1
|
pkgrel = 1
|
||||||
url = https://github.com/arabianq/pipewire-soundpad
|
url = https://github.com/arabianq/pipewire-soundpad
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
@@ -12,7 +12,7 @@ pkgbase = pwsp
|
|||||||
makedepends = cmake
|
makedepends = cmake
|
||||||
makedepends = pipewire
|
makedepends = pipewire
|
||||||
makedepends = alsa-lib
|
makedepends = alsa-lib
|
||||||
source = https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.2.tar.gz
|
source = https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.4.tar.gz
|
||||||
sha256sums = SKIP
|
sha256sums = SKIP
|
||||||
|
|
||||||
pkgname = pwsp
|
pkgname = pwsp
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
# Maintainer: Alexander Tarasov <a.tevg@ya.ru>
|
# Maintainer: Alexander Tarasov <a.tevg@ya.ru>
|
||||||
pkgsubn=pwsp
|
pkgsubn=pwsp
|
||||||
pkgname=pwsp
|
pkgname=pwsp
|
||||||
pkgver=1.12.2
|
pkgver=1.12.4
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Lets you play audio files through your microphone"
|
pkgdesc="Lets you play audio files through your microphone"
|
||||||
arch=('x86_64' 'aarch64')
|
arch=('x86_64' 'aarch64')
|
||||||
url="https://github.com/arabianq/pipewire-soundpad"
|
url="https://github.com/arabianq/pipewire-soundpad"
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
|
depends=('pipewire' 'alsa-lib' 'openssl')
|
||||||
makedepends=(clang rust cargo cmake pipewire alsa-lib)
|
makedepends=(clang rust cargo cmake pipewire alsa-lib)
|
||||||
source=("$url/archive/refs/tags/v$pkgver.tar.gz")
|
source=("$url/archive/refs/tags/v$pkgver.tar.gz")
|
||||||
sha256sums=('SKIP')
|
sha256sums=('SKIP')
|
||||||
|
|||||||
+161
-434
@@ -177,14 +177,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/arrayvec/arrayvec-0.7.7.crate",
|
"url": "https://static.crates.io/crates/arrayvec/arrayvec-0.7.8.crate",
|
||||||
"sha256": "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe",
|
"sha256": "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56",
|
||||||
"dest": "cargo/vendor/arrayvec-0.7.7"
|
"dest": "cargo/vendor/arrayvec-0.7.8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe\", \"files\": {}}",
|
"contents": "{\"package\": \"d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/arrayvec-0.7.7",
|
"dest": "cargo/vendor/arrayvec-0.7.8",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -356,32 +356,6 @@
|
|||||||
"dest": "cargo/vendor/autocfg-1.5.1",
|
"dest": "cargo/vendor/autocfg-1.5.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/aws-lc-rs/aws-lc-rs-1.17.1.crate",
|
|
||||||
"sha256": "4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad",
|
|
||||||
"dest": "cargo/vendor/aws-lc-rs-1.17.1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/aws-lc-rs-1.17.1",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/aws-lc-sys/aws-lc-sys-0.42.0.crate",
|
|
||||||
"sha256": "6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444",
|
|
||||||
"dest": "cargo/vendor/aws-lc-sys-0.42.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/aws-lc-sys-0.42.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -658,14 +632,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/cc/cc-1.2.65.crate",
|
"url": "https://static.crates.io/crates/cc/cc-1.2.66.crate",
|
||||||
"sha256": "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96",
|
"sha256": "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996",
|
||||||
"dest": "cargo/vendor/cc-1.2.65"
|
"dest": "cargo/vendor/cc-1.2.66"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96\", \"files\": {}}",
|
"contents": "{\"package\": \"f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/cc-1.2.65",
|
"dest": "cargo/vendor/cc-1.2.66",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1022,40 +996,40 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.6.crate",
|
"url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.7.crate",
|
||||||
"sha256": "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51",
|
"sha256": "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb",
|
||||||
"dest": "cargo/vendor/crossbeam-deque-0.8.6"
|
"dest": "cargo/vendor/crossbeam-deque-0.8.7"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51\", \"files\": {}}",
|
"contents": "{\"package\": \"5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/crossbeam-deque-0.8.6",
|
"dest": "cargo/vendor/crossbeam-deque-0.8.7",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.18.crate",
|
"url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.20.crate",
|
||||||
"sha256": "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e",
|
"sha256": "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f",
|
||||||
"dest": "cargo/vendor/crossbeam-epoch-0.9.18"
|
"dest": "cargo/vendor/crossbeam-epoch-0.9.20"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\", \"files\": {}}",
|
"contents": "{\"package\": \"2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/crossbeam-epoch-0.9.18",
|
"dest": "cargo/vendor/crossbeam-epoch-0.9.20",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.21.crate",
|
"url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.22.crate",
|
||||||
"sha256": "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28",
|
"sha256": "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17",
|
||||||
"dest": "cargo/vendor/crossbeam-utils-0.8.21"
|
"dest": "cargo/vendor/crossbeam-utils-0.8.22"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28\", \"files\": {}}",
|
"contents": "{\"package\": \"61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/crossbeam-utils-0.8.21",
|
"dest": "cargo/vendor/crossbeam-utils-0.8.22",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1214,19 +1188,6 @@
|
|||||||
"dest": "cargo/vendor/dpi-0.1.2",
|
"dest": "cargo/vendor/dpi-0.1.2",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/dunce/dunce-1.0.5.crate",
|
|
||||||
"sha256": "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813",
|
|
||||||
"dest": "cargo/vendor/dunce-1.0.5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/dunce-1.0.5",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -1669,19 +1630,6 @@
|
|||||||
"dest": "cargo/vendor/flate2-1.1.9",
|
"dest": "cargo/vendor/flate2-1.1.9",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/fnv/fnv-1.0.7.crate",
|
|
||||||
"sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1",
|
|
||||||
"dest": "cargo/vendor/fnv-1.0.7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/fnv-1.0.7",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -1734,6 +1682,19 @@
|
|||||||
"dest": "cargo/vendor/fontdb-0.23.0",
|
"dest": "cargo/vendor/fontdb-0.23.0",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/foreign-types/foreign-types-0.3.2.crate",
|
||||||
|
"sha256": "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1",
|
||||||
|
"dest": "cargo/vendor/foreign-types-0.3.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/foreign-types-0.3.2",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -1760,6 +1721,19 @@
|
|||||||
"dest": "cargo/vendor/foreign-types-macros-0.2.3",
|
"dest": "cargo/vendor/foreign-types-macros-0.2.3",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/foreign-types-shared/foreign-types-shared-0.1.1.crate",
|
||||||
|
"sha256": "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b",
|
||||||
|
"dest": "cargo/vendor/foreign-types-shared-0.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/foreign-types-shared-0.1.1",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -1786,19 +1760,6 @@
|
|||||||
"dest": "cargo/vendor/form_urlencoded-1.2.2",
|
"dest": "cargo/vendor/form_urlencoded-1.2.2",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/fs_extra/fs_extra-1.3.0.crate",
|
|
||||||
"sha256": "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c",
|
|
||||||
"dest": "cargo/vendor/fs_extra-1.3.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/fs_extra-1.3.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -1864,19 +1825,6 @@
|
|||||||
"dest": "cargo/vendor/futures-lite-2.6.1",
|
"dest": "cargo/vendor/futures-lite-2.6.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.32.crate",
|
|
||||||
"sha256": "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893",
|
|
||||||
"dest": "cargo/vendor/futures-sink-0.3.32"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/futures-sink-0.3.32",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -2111,19 +2059,6 @@
|
|||||||
"dest": "cargo/vendor/guillotiere-0.7.0",
|
"dest": "cargo/vendor/guillotiere-0.7.0",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/h2/h2-0.4.15.crate",
|
|
||||||
"sha256": "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155",
|
|
||||||
"dest": "cargo/vendor/h2-0.4.15"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/h2-0.4.15",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -2309,14 +2244,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/hyper-rustls/hyper-rustls-0.27.9.crate",
|
"url": "https://static.crates.io/crates/hyper-tls/hyper-tls-0.6.0.crate",
|
||||||
"sha256": "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f",
|
"sha256": "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0",
|
||||||
"dest": "cargo/vendor/hyper-rustls-0.27.9"
|
"dest": "cargo/vendor/hyper-tls-0.6.0"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f\", \"files\": {}}",
|
"contents": "{\"package\": \"70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/hyper-rustls-0.27.9",
|
"dest": "cargo/vendor/hyper-tls-0.6.0",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2634,14 +2569,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/jobserver/jobserver-0.1.34.crate",
|
"url": "https://static.crates.io/crates/jobserver/jobserver-0.1.35.crate",
|
||||||
"sha256": "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33",
|
"sha256": "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3",
|
||||||
"dest": "cargo/vendor/jobserver-0.1.34"
|
"dest": "cargo/vendor/jobserver-0.1.35"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33\", \"files\": {}}",
|
"contents": "{\"package\": \"1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/jobserver-0.1.34",
|
"dest": "cargo/vendor/jobserver-0.1.35",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2865,19 +2800,6 @@
|
|||||||
"dest": "cargo/vendor/log-0.4.33",
|
"dest": "cargo/vendor/log-0.4.33",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/lru-slab/lru-slab-0.1.2.crate",
|
|
||||||
"sha256": "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154",
|
|
||||||
"dest": "cargo/vendor/lru-slab-0.1.2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/lru-slab-0.1.2",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -3021,6 +2943,19 @@
|
|||||||
"dest": "cargo/vendor/naga-29.0.4",
|
"dest": "cargo/vendor/naga-29.0.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/native-tls/native-tls-0.2.18.crate",
|
||||||
|
"sha256": "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2",
|
||||||
|
"dest": "cargo/vendor/native-tls-0.2.18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/native-tls-0.2.18",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -3128,14 +3063,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/num-bigint/num-bigint-0.4.6.crate",
|
"url": "https://static.crates.io/crates/num-bigint/num-bigint-0.4.8.crate",
|
||||||
"sha256": "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9",
|
"sha256": "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367",
|
||||||
"dest": "cargo/vendor/num-bigint-0.4.6"
|
"dest": "cargo/vendor/num-bigint-0.4.8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9\", \"files\": {}}",
|
"contents": "{\"package\": \"c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/num-bigint-0.4.6",
|
"dest": "cargo/vendor/num-bigint-0.4.8",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3606,6 +3541,32 @@
|
|||||||
"dest": "cargo/vendor/opener-0.8.5",
|
"dest": "cargo/vendor/opener-0.8.5",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/openssl/openssl-0.10.81.crate",
|
||||||
|
"sha256": "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45",
|
||||||
|
"dest": "cargo/vendor/openssl-0.10.81"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/openssl-0.10.81",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/openssl-macros/openssl-macros-0.1.1.crate",
|
||||||
|
"sha256": "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c",
|
||||||
|
"dest": "cargo/vendor/openssl-macros-0.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/openssl-macros-0.1.1",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -3619,6 +3580,19 @@
|
|||||||
"dest": "cargo/vendor/openssl-probe-0.2.1",
|
"dest": "cargo/vendor/openssl-probe-0.2.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/openssl-sys/openssl-sys-0.9.117.crate",
|
||||||
|
"sha256": "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695",
|
||||||
|
"dest": "cargo/vendor/openssl-sys-0.9.117"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/openssl-sys-0.9.117",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -3983,19 +3957,6 @@
|
|||||||
"dest": "cargo/vendor/potential_utf-0.1.5",
|
"dest": "cargo/vendor/potential_utf-0.1.5",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.21.crate",
|
|
||||||
"sha256": "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9",
|
|
||||||
"dest": "cargo/vendor/ppv-lite86-0.2.21"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/ppv-lite86-0.2.21",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -4038,14 +3999,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/pxfm/pxfm-0.1.29.crate",
|
"url": "https://static.crates.io/crates/pxfm/pxfm-0.1.30.crate",
|
||||||
"sha256": "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f",
|
"sha256": "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea",
|
||||||
"dest": "cargo/vendor/pxfm-0.1.29"
|
"dest": "cargo/vendor/pxfm-0.1.30"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f\", \"files\": {}}",
|
"contents": "{\"package\": \"d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/pxfm-0.1.29",
|
"dest": "cargo/vendor/pxfm-0.1.30",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4074,45 +4035,6 @@
|
|||||||
"dest": "cargo/vendor/quick-xml-0.39.4",
|
"dest": "cargo/vendor/quick-xml-0.39.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/quinn/quinn-0.11.11.crate",
|
|
||||||
"sha256": "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8",
|
|
||||||
"dest": "cargo/vendor/quinn-0.11.11"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/quinn-0.11.11",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/quinn-proto/quinn-proto-0.11.15.crate",
|
|
||||||
"sha256": "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e",
|
|
||||||
"dest": "cargo/vendor/quinn-proto-0.11.15"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/quinn-proto-0.11.15",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/quinn-udp/quinn-udp-0.5.14.crate",
|
|
||||||
"sha256": "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd",
|
|
||||||
"dest": "cargo/vendor/quinn-udp-0.5.14"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/quinn-udp-0.5.14",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -4178,32 +4100,6 @@
|
|||||||
"dest": "cargo/vendor/rand-0.8.6",
|
"dest": "cargo/vendor/rand-0.8.6",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rand/rand-0.9.4.crate",
|
|
||||||
"sha256": "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea",
|
|
||||||
"dest": "cargo/vendor/rand-0.9.4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rand-0.9.4",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rand_chacha/rand_chacha-0.9.0.crate",
|
|
||||||
"sha256": "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb",
|
|
||||||
"dest": "cargo/vendor/rand_chacha-0.9.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rand_chacha-0.9.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -4217,19 +4113,6 @@
|
|||||||
"dest": "cargo/vendor/rand_core-0.6.4",
|
"dest": "cargo/vendor/rand_core-0.6.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rand_core/rand_core-0.9.5.crate",
|
|
||||||
"sha256": "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c",
|
|
||||||
"dest": "cargo/vendor/rand_core-0.9.5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rand_core-0.9.5",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -4412,19 +4295,6 @@
|
|||||||
"dest": "cargo/vendor/rfd-0.17.2",
|
"dest": "cargo/vendor/rfd-0.17.2",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/ring/ring-0.17.14.crate",
|
|
||||||
"sha256": "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7",
|
|
||||||
"dest": "cargo/vendor/ring-0.17.14"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/ring-0.17.14",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"commands": [
|
"commands": [
|
||||||
@@ -4511,14 +4381,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/rustc-hash/rustc-hash-2.1.2.crate",
|
"url": "https://static.crates.io/crates/rustc-hash/rustc-hash-2.1.3.crate",
|
||||||
"sha256": "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe",
|
"sha256": "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d",
|
||||||
"dest": "cargo/vendor/rustc-hash-2.1.2"
|
"dest": "cargo/vendor/rustc-hash-2.1.3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe\", \"files\": {}}",
|
"contents": "{\"package\": \"6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/rustc-hash-2.1.2",
|
"dest": "cargo/vendor/rustc-hash-2.1.3",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4560,32 +4430,6 @@
|
|||||||
"dest": "cargo/vendor/rustix-1.1.4",
|
"dest": "cargo/vendor/rustix-1.1.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rustls/rustls-0.23.41.crate",
|
|
||||||
"sha256": "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f",
|
|
||||||
"dest": "cargo/vendor/rustls-0.23.41"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rustls-0.23.41",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rustls-native-certs/rustls-native-certs-0.8.4.crate",
|
|
||||||
"sha256": "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d",
|
|
||||||
"dest": "cargo/vendor/rustls-native-certs-0.8.4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rustls-native-certs-0.8.4",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -4602,53 +4446,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/rustls-platform-verifier/rustls-platform-verifier-0.7.0.crate",
|
"url": "https://static.crates.io/crates/rustversion/rustversion-1.0.23.crate",
|
||||||
"sha256": "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0",
|
"sha256": "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f",
|
||||||
"dest": "cargo/vendor/rustls-platform-verifier-0.7.0"
|
"dest": "cargo/vendor/rustversion-1.0.23"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0\", \"files\": {}}",
|
"contents": "{\"package\": \"cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/rustls-platform-verifier-0.7.0",
|
"dest": "cargo/vendor/rustversion-1.0.23",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rustls-platform-verifier-android/rustls-platform-verifier-android-0.1.1.crate",
|
|
||||||
"sha256": "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f",
|
|
||||||
"dest": "cargo/vendor/rustls-platform-verifier-android-0.1.1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rustls-platform-verifier-android-0.1.1",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rustls-webpki/rustls-webpki-0.103.13.crate",
|
|
||||||
"sha256": "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e",
|
|
||||||
"dest": "cargo/vendor/rustls-webpki-0.103.13"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rustls-webpki-0.103.13",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/rustversion/rustversion-1.0.22.crate",
|
|
||||||
"sha256": "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d",
|
|
||||||
"dest": "cargo/vendor/rustversion-1.0.22"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/rustversion-1.0.22",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5132,19 +4937,6 @@
|
|||||||
"dest": "cargo/vendor/strsim-0.11.1",
|
"dest": "cargo/vendor/strsim-0.11.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/subtle/subtle-2.6.1.crate",
|
|
||||||
"sha256": "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292",
|
|
||||||
"dest": "cargo/vendor/subtle-2.6.1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/subtle-2.6.1",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -5418,32 +5210,6 @@
|
|||||||
"dest": "cargo/vendor/sys-locale-0.3.2",
|
"dest": "cargo/vendor/sys-locale-0.3.2",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/system-configuration/system-configuration-0.7.0.crate",
|
|
||||||
"sha256": "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b",
|
|
||||||
"dest": "cargo/vendor/system-configuration-0.7.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/system-configuration-0.7.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/system-configuration-sys/system-configuration-sys-0.6.0.crate",
|
|
||||||
"sha256": "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4",
|
|
||||||
"dest": "cargo/vendor/system-configuration-sys-0.6.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/system-configuration-sys-0.6.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -5642,27 +5408,14 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/tokio-rustls/tokio-rustls-0.26.4.crate",
|
"url": "https://static.crates.io/crates/tokio-native-tls/tokio-native-tls-0.3.1.crate",
|
||||||
"sha256": "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61",
|
"sha256": "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2",
|
||||||
"dest": "cargo/vendor/tokio-rustls-0.26.4"
|
"dest": "cargo/vendor/tokio-native-tls-0.3.1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61\", \"files\": {}}",
|
"contents": "{\"package\": \"bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/tokio-rustls-0.26.4",
|
"dest": "cargo/vendor/tokio-native-tls-0.3.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/tokio-util/tokio-util-0.7.18.crate",
|
|
||||||
"sha256": "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098",
|
|
||||||
"dest": "cargo/vendor/tokio-util-0.7.18"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/tokio-util-0.7.18",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -6016,19 +5769,6 @@
|
|||||||
"dest": "cargo/vendor/unsafe-libyaml-0.2.11",
|
"dest": "cargo/vendor/unsafe-libyaml-0.2.11",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/untrusted/untrusted-0.9.0.crate",
|
|
||||||
"sha256": "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1",
|
|
||||||
"dest": "cargo/vendor/untrusted-0.9.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/untrusted-0.9.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -6068,6 +5808,19 @@
|
|||||||
"dest": "cargo/vendor/uuid-1.23.4",
|
"dest": "cargo/vendor/uuid-1.23.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate",
|
||||||
|
"sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
|
||||||
|
"dest": "cargo/vendor/vcpkg-0.2.15"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/vcpkg-0.2.15",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -6419,19 +6172,6 @@
|
|||||||
"dest": "cargo/vendor/webbrowser-1.2.1",
|
"dest": "cargo/vendor/webbrowser-1.2.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/webpki-root-certs/webpki-root-certs-1.0.8.crate",
|
|
||||||
"sha256": "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267",
|
|
||||||
"dest": "cargo/vendor/webpki-root-certs-1.0.8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/webpki-root-certs-1.0.8",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -6640,19 +6380,6 @@
|
|||||||
"dest": "cargo/vendor/windows-numerics-0.3.1",
|
"dest": "cargo/vendor/windows-numerics-0.3.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/windows-registry/windows-registry-0.6.1.crate",
|
|
||||||
"sha256": "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720",
|
|
||||||
"dest": "cargo/vendor/windows-registry-0.6.1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/windows-registry-0.6.1",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
@@ -7215,27 +6942,27 @@
|
|||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/zerocopy/zerocopy-0.8.52.crate",
|
"url": "https://static.crates.io/crates/zerocopy/zerocopy-0.8.53.crate",
|
||||||
"sha256": "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f",
|
"sha256": "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1",
|
||||||
"dest": "cargo/vendor/zerocopy-0.8.52"
|
"dest": "cargo/vendor/zerocopy-0.8.53"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f\", \"files\": {}}",
|
"contents": "{\"package\": \"75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/zerocopy-0.8.52",
|
"dest": "cargo/vendor/zerocopy-0.8.53",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.8.52.crate",
|
"url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.8.53.crate",
|
||||||
"sha256": "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930",
|
"sha256": "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71",
|
||||||
"dest": "cargo/vendor/zerocopy-derive-0.8.52"
|
"dest": "cargo/vendor/zerocopy-derive-0.8.53"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930\", \"files\": {}}",
|
"contents": "{\"package\": \"4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/zerocopy-derive-0.8.52",
|
"dest": "cargo/vendor/zerocopy-derive-0.8.53",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<name>arabian</name>
|
<name>arabian</name>
|
||||||
</developer>
|
</developer>
|
||||||
<releases>
|
<releases>
|
||||||
<release version="1.12.2" date="2026-07-02" />
|
<release version="1.12.4" date="2026-07-07" />
|
||||||
</releases>
|
</releases>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
</component>
|
</component>
|
||||||
@@ -30,6 +30,7 @@ modules:
|
|||||||
- name: pwsp
|
- name: pwsp
|
||||||
buildsystem: simple
|
buildsystem: simple
|
||||||
build-commands:
|
build-commands:
|
||||||
|
- if [ -w /run/ccache ]; then mkdir -p /run/ccache/cargo-target && rm -rf target && ln -s /run/ccache/cargo-target target; fi
|
||||||
- export CARGO_HOME=$PWD/cargo && cargo build --release --offline
|
- export CARGO_HOME=$PWD/cargo && cargo build --release --offline
|
||||||
- install -Dm755 target/release/pwsp-daemon /app/bin/pwsp-daemon
|
- install -Dm755 target/release/pwsp-daemon /app/bin/pwsp-daemon
|
||||||
- install -Dm755 target/release/pwsp-cli /app/bin/pwsp-cli
|
- install -Dm755 target/release/pwsp-cli /app/bin/pwsp-cli
|
||||||
|
|||||||
@@ -23,9 +23,11 @@ BuildRequires: pipewire-devel
|
|||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
BuildRequires: alsa-devel
|
BuildRequires: alsa-devel
|
||||||
BuildRequires: dbus-1-devel
|
BuildRequires: dbus-1-devel
|
||||||
|
BuildRequires: libopenssl-devel
|
||||||
%else
|
%else
|
||||||
BuildRequires: alsa-lib-devel
|
BuildRequires: alsa-lib-devel
|
||||||
BuildRequires: dbus-devel
|
BuildRequires: dbus-devel
|
||||||
|
BuildRequires: openssl-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: clang-devel
|
BuildRequires: clang-devel
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: pwsp
|
Name: pwsp
|
||||||
Version: 1.12.2
|
Version: 1.12.4
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
Summary: Lets you play audio files through your microphone
|
Summary: Lets you play audio files through your microphone
|
||||||
|
|
||||||
@@ -28,9 +28,11 @@ BuildRequires: pipewire-devel
|
|||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
BuildRequires: alsa-devel
|
BuildRequires: alsa-devel
|
||||||
BuildRequires: dbus-1-devel
|
BuildRequires: dbus-1-devel
|
||||||
|
BuildRequires: libopenssl-devel
|
||||||
%else
|
%else
|
||||||
BuildRequires: alsa-lib-devel
|
BuildRequires: alsa-lib-devel
|
||||||
BuildRequires: dbus-devel
|
BuildRequires: dbus-devel
|
||||||
|
BuildRequires: openssl-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: clang-devel
|
BuildRequires: clang-devel
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ reqwest.workspace = true
|
|||||||
percent-encoding.workspace = true
|
percent-encoding.workspace = true
|
||||||
|
|
||||||
[package.metadata.deb]
|
[package.metadata.deb]
|
||||||
|
name = "pwsp"
|
||||||
|
section = "sound"
|
||||||
|
priority = "optional"
|
||||||
assets = [
|
assets = [
|
||||||
[
|
[
|
||||||
"target/release/pwsp-daemon",
|
"target/release/pwsp-daemon",
|
||||||
|
|||||||
@@ -199,11 +199,7 @@ impl SoundpadGui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !search_query.is_empty() {
|
if !search_query.is_empty() {
|
||||||
let file_name = entry_path
|
let file_name = entry_path.file_name().unwrap_or_default().to_string_lossy();
|
||||||
.file_name()
|
|
||||||
.unwrap_or_default()
|
|
||||||
.to_string_lossy()
|
|
||||||
.to_string();
|
|
||||||
|
|
||||||
if !file_name.to_lowercase().contains(search_query) {
|
if !file_name.to_lowercase().contains(search_query) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
+25
-9
@@ -1,9 +1,13 @@
|
|||||||
mod gui;
|
mod gui;
|
||||||
|
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result, anyhow};
|
||||||
use pwsp_lib::utils::gui::ensure_pwsp_audio_dir;
|
use pwsp_lib::utils::gui::ensure_pwsp_audio_dir;
|
||||||
use rust_i18n::i18n;
|
use rust_i18n::i18n;
|
||||||
use std::{env, path::PathBuf};
|
use std::{
|
||||||
|
env,
|
||||||
|
path::{Path, PathBuf},
|
||||||
|
time::{SystemTime, UNIX_EPOCH},
|
||||||
|
};
|
||||||
|
|
||||||
i18n!("locales", fallback = "en");
|
i18n!("locales", fallback = "en");
|
||||||
|
|
||||||
@@ -31,19 +35,31 @@ async fn download_audio_from_url(uri: &str) -> Result<PathBuf> {
|
|||||||
|
|
||||||
let target_url = uri
|
let target_url = uri
|
||||||
.strip_prefix(prefix)
|
.strip_prefix(prefix)
|
||||||
.ok_or_else(|| anyhow::anyhow!("URI does not containt an expected prefix: {}", prefix))?;
|
.ok_or_else(|| anyhow!("URI does not containt an expected prefix: {}", prefix))?;
|
||||||
|
|
||||||
let file_name_encoded = target_url
|
let file_name_encoded = match target_url.split('/').next_back() {
|
||||||
.split('/')
|
Some(path) => path.to_string(),
|
||||||
.next_back()
|
None => {
|
||||||
.unwrap_or("downloaded_audio.mp3");
|
let id = SystemTime::now()
|
||||||
|
.duration_since(UNIX_EPOCH)
|
||||||
|
.expect("Time went back")
|
||||||
|
.as_nanos();
|
||||||
|
format!("downloaded_audio_{}.mp3", id)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let file_name = percent_encoding::percent_decode_str(file_name_encoded)
|
let file_name = percent_encoding::percent_decode_str(&file_name_encoded.clone())
|
||||||
.decode_utf8()
|
.decode_utf8()
|
||||||
.unwrap_or_else(|_| file_name_encoded.into())
|
.unwrap_or_else(|_| file_name_encoded.into())
|
||||||
.into_owned();
|
.into_owned();
|
||||||
|
|
||||||
let save_path = ensure_pwsp_audio_dir().join(file_name);
|
let normalized_file_name = file_name.replace('\\', "/");
|
||||||
|
let sanitized_file_name = Path::new(&normalized_file_name)
|
||||||
|
.file_name()
|
||||||
|
.and_then(|n| n.to_str())
|
||||||
|
.unwrap_or("downloaded_audio.mp3");
|
||||||
|
|
||||||
|
let save_path = ensure_pwsp_audio_dir().join(sanitized_file_name);
|
||||||
|
|
||||||
let response = reqwest::get(target_url)
|
let response = reqwest::get(target_url)
|
||||||
.await?
|
.await?
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use anyhow::Result;
|
use anyhow::{Context, Result};
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
pub fn get_config_path() -> Result<PathBuf> {
|
pub fn get_config_path() -> Result<PathBuf> {
|
||||||
let config_path = dirs::config_dir().expect("Failed to obtain config dir");
|
let config_path = dirs::config_dir().context("Failed to obtain config dir")?;
|
||||||
Ok(config_path.join("pwsp"))
|
Ok(config_path.join("pwsp"))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user