docs: update README and add AUR automation
- Add installation instructions (AUR, Flatpak, AppImage) - Document all API keys (Last.fm, Discogs, Spotify, Tidal) - Add playlist import feature documentation - Update project structure - Add PKGBUILD for qbz-bin AUR package - Add workflow to auto-update AUR on release - Update .env.example with Spotify/Tidal variables
This commit is contained in:
1 parent
1b6c895f62
commit
7287da5b27
4 files changed
+245
-32
No files matched your search
@@ -13,3 +13,17 @@ LAST_FM_APP_REGISTER=your_lastfm_username
|
|||||||
|
|
||||||
DISCOGS_API_CLIENT_KEY=your_consumer_key_here
|
DISCOGS_API_CLIENT_KEY=your_consumer_key_here
|
||||||
DISCOGS_API_CLIENT_SECRET=your_consumer_secret_here
|
DISCOGS_API_CLIENT_SECRET=your_consumer_secret_here
|
||||||
|
|
||||||
|
# Spotify API Configuration (for playlist import)
|
||||||
|
# Create your own Spotify application at: https://developer.spotify.com/dashboard
|
||||||
|
# These credentials are used for importing playlists from Spotify
|
||||||
|
|
||||||
|
SPOTIFY_API_CLIENT_ID=your_client_id_here
|
||||||
|
SPOTIFY_API_CLIENT_SECRET=your_client_secret_here
|
||||||
|
|
||||||
|
# Tidal API Configuration (for playlist import)
|
||||||
|
# Create your own Tidal application at: https://developer.tidal.com/
|
||||||
|
# These credentials are used for importing playlists from Tidal
|
||||||
|
|
||||||
|
TIDAL_API_CLIENT_ID=your_client_id_here
|
||||||
|
TIDAL_API_CLIENT_SECRET=your_client_secret_here
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
name: release-aur
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: "Version to publish (e.g. 1.0.0)"
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-aur:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine version
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
if [[ "${{ github.event_name }}" == "release" ]]; then
|
||||||
|
VERSION="${{ github.event.release.tag_name }}"
|
||||||
|
VERSION="${VERSION#v}"
|
||||||
|
else
|
||||||
|
VERSION="${{ inputs.version }}"
|
||||||
|
fi
|
||||||
|
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Wait for release assets
|
||||||
|
if: github.event_name == 'release'
|
||||||
|
run: |
|
||||||
|
echo "Waiting 60s for release assets to be available..."
|
||||||
|
sleep 60
|
||||||
|
|
||||||
|
- name: Download release tarball and get checksum
|
||||||
|
id: checksum
|
||||||
|
env:
|
||||||
|
VERSION: ${{ steps.version.outputs.version }}
|
||||||
|
run: |
|
||||||
|
TARBALL_URL="https://github.com/vicrodh/qbz/releases/download/v${VERSION}/qbz_${VERSION}_amd64.tar.gz"
|
||||||
|
echo "Downloading: $TARBALL_URL"
|
||||||
|
curl -fsSL -o /tmp/qbz.tar.gz "$TARBALL_URL"
|
||||||
|
SHA256=$(sha256sum /tmp/qbz.tar.gz | cut -d' ' -f1)
|
||||||
|
echo "sha256=$SHA256" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Checksum: $SHA256"
|
||||||
|
|
||||||
|
- name: Setup SSH for AUR
|
||||||
|
env:
|
||||||
|
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
echo "$AUR_SSH_PRIVATE_KEY" > ~/.ssh/aur
|
||||||
|
chmod 600 ~/.ssh/aur
|
||||||
|
echo "Host aur.archlinux.org" >> ~/.ssh/config
|
||||||
|
echo " IdentityFile ~/.ssh/aur" >> ~/.ssh/config
|
||||||
|
echo " User aur" >> ~/.ssh/config
|
||||||
|
ssh-keyscan -t ed25519 aur.archlinux.org >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
- name: Clone AUR repo
|
||||||
|
run: |
|
||||||
|
git clone ssh://aur@aur.archlinux.org/qbz-bin.git /tmp/aur-qbz-bin
|
||||||
|
|
||||||
|
- name: Update PKGBUILD
|
||||||
|
env:
|
||||||
|
VERSION: ${{ steps.version.outputs.version }}
|
||||||
|
SHA256: ${{ steps.checksum.outputs.sha256 }}
|
||||||
|
run: |
|
||||||
|
cd /tmp/aur-qbz-bin
|
||||||
|
|
||||||
|
# Update version
|
||||||
|
sed -i "s/^pkgver=.*/pkgver=${VERSION}/" PKGBUILD
|
||||||
|
|
||||||
|
# Reset pkgrel to 1 for new version
|
||||||
|
sed -i "s/^pkgrel=.*/pkgrel=1/" PKGBUILD
|
||||||
|
|
||||||
|
# Update checksum
|
||||||
|
sed -i "s/^sha256sums=.*/sha256sums=('${SHA256}')/" PKGBUILD
|
||||||
|
|
||||||
|
cat PKGBUILD
|
||||||
|
|
||||||
|
- name: Generate .SRCINFO
|
||||||
|
run: |
|
||||||
|
cd /tmp/aur-qbz-bin
|
||||||
|
docker run --rm -v "$PWD":/pkg -w /pkg archlinux:latest bash -c "
|
||||||
|
pacman -Sy --noconfirm pacman-contrib
|
||||||
|
makepkg --printsrcinfo > .SRCINFO
|
||||||
|
"
|
||||||
|
cat .SRCINFO
|
||||||
|
|
||||||
|
- name: Commit and push to AUR
|
||||||
|
env:
|
||||||
|
VERSION: ${{ steps.version.outputs.version }}
|
||||||
|
run: |
|
||||||
|
cd /tmp/aur-qbz-bin
|
||||||
|
git config user.name "GitHub Actions"
|
||||||
|
git config user.email "actions@github.com"
|
||||||
|
git add PKGBUILD .SRCINFO
|
||||||
|
git commit -m "Update to v${VERSION}"
|
||||||
|
git push
|
||||||
@@ -5,12 +5,9 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/github-vicrodh%2Fqbz-0b0b0b?style=flat&logo=github" alt="GitHub repo" /></a>
|
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/github-vicrodh%2Fqbz-0b0b0b?style=flat&logo=github" alt="GitHub repo" /></a>
|
||||||
<a href="https://github.com/vicrodh/qbz/releases"><img src="https://img.shields.io/github/v/release/vicrodh/qbz?style=flat" alt="Release" /></a>
|
<a href="https://github.com/vicrodh/qbz/releases"><img src="https://img.shields.io/github/v/release/vicrodh/qbz?style=flat" alt="Release" /></a>
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/version-0.1.0-0b0b0b?style=flat" alt="Version" /></a>
|
<a href="https://aur.archlinux.org/packages/qbz-bin"><img src="https://img.shields.io/aur/version/qbz-bin?style=flat&logo=archlinux" alt="AUR" /></a>
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/github/license/vicrodh/qbz?style=flat" alt="License" /></a>
|
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/github/license/vicrodh/qbz?style=flat" alt="License" /></a>
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/github/last-commit/vicrodh/qbz?style=flat" alt="Last commit" /></a>
|
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/platform-Linux-0b0b0b?style=flat&logo=linux" alt="Platform" /></a>
|
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/platform-Linux-0b0b0b?style=flat&logo=linux" alt="Platform" /></a>
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/lang-Rust-0b0b0b?style=flat&logo=rust" alt="Language: Rust" /></a>
|
|
||||||
<a href="https://github.com/vicrodh/qbz"><img src="https://img.shields.io/badge/ui-Svelte-0b0b0b?style=flat&logo=svelte" alt="UI: Svelte" /></a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# QBZ
|
# QBZ
|
||||||
@@ -21,6 +18,31 @@ QBZ is a free and open source (FOSS) Qobuz client for Linux with native, high-fi
|
|||||||
|
|
||||||
Browsers cap audio output around 48 kHz, while Qobuz streams up to 192 kHz. QBZ uses a native playback pipeline with direct device control so your system and DAC receive the original resolution, with caching and system integrations that wrappers cannot provide.
|
Browsers cap audio output around 48 kHz, while Qobuz streams up to 192 kHz. QBZ uses a native playback pipeline with direct device control so your system and DAC receive the original resolution, with caching and system integrations that wrappers cannot provide.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Arch Linux (AUR)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Using yay
|
||||||
|
yay -S qbz-bin
|
||||||
|
|
||||||
|
# Using paru
|
||||||
|
paru -S qbz-bin
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flatpak
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Download from releases
|
||||||
|
flatpak install ./QBZ.flatpak
|
||||||
|
```
|
||||||
|
|
||||||
|
### AppImage / Tarball
|
||||||
|
|
||||||
|
Download the latest release from the [Releases](https://github.com/vicrodh/qbz/releases) page.
|
||||||
|
|
||||||
|
> **Note:** Pre-built binaries include all API integrations (Last.fm, Discogs, Spotify, Tidal) ready to use. If you build from source, you'll need to provide your own API keys.
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
Coming soon.
|
Coming soon.
|
||||||
@@ -29,7 +51,7 @@ Coming soon.
|
|||||||
|
|
||||||
### Streaming and Playback
|
### Streaming and Playback
|
||||||
- Qobuz authentication and full catalog search (albums, tracks, artists, playlists).
|
- Qobuz authentication and full catalog search (albums, tracks, artists, playlists).
|
||||||
- Native decoding for FLAC and MP3 with real-time playback state updates.
|
- Native decoding for FLAC, MP3, AAC, and ALAC with real-time playback state updates.
|
||||||
- Quality selection with automatic fallback across Qobuz tiers.
|
- Quality selection with automatic fallback across Qobuz tiers.
|
||||||
- Audio device enumeration and per-device output selection.
|
- Audio device enumeration and per-device output selection.
|
||||||
- DAC passthrough mode for bit-perfect playback.
|
- DAC passthrough mode for bit-perfect playback.
|
||||||
@@ -41,6 +63,11 @@ Coming soon.
|
|||||||
- Favorites and playlists from your Qobuz account.
|
- Favorites and playlists from your Qobuz account.
|
||||||
- Local library backend: directory scanning, metadata extraction, CUE sheet parsing, and SQLite indexing.
|
- Local library backend: directory scanning, metadata extraction, CUE sheet parsing, and SQLite indexing.
|
||||||
|
|
||||||
|
### Playlist Import
|
||||||
|
- Import playlists from Spotify and Tidal into your Qobuz library.
|
||||||
|
- Automatic track matching with fuzzy search.
|
||||||
|
- Batch import with progress tracking.
|
||||||
|
|
||||||
### Network Casting
|
### Network Casting
|
||||||
- Chromecast device discovery and streaming.
|
- Chromecast device discovery and streaming.
|
||||||
- DLNA/UPnP device discovery and streaming (AVTransport SOAP).
|
- DLNA/UPnP device discovery and streaming (AVTransport SOAP).
|
||||||
@@ -51,13 +78,21 @@ Coming soon.
|
|||||||
- MPRIS media controls and media key support on Linux.
|
- MPRIS media controls and media key support on Linux.
|
||||||
- Desktop notifications for track changes.
|
- Desktop notifications for track changes.
|
||||||
- Last.fm scrobbling and now-playing updates.
|
- Last.fm scrobbling and now-playing updates.
|
||||||
|
- Discogs artwork fetching for local library.
|
||||||
- Shareable Qobuz URLs and universal SongLink links (Odesli).
|
- Shareable Qobuz URLs and universal SongLink links (Odesli).
|
||||||
|
|
||||||
### Interface
|
### Interface
|
||||||
- Now playing, queue panel, and full-screen playback views.
|
- Now playing, queue panel, and full-screen playback views.
|
||||||
- Focus mode for distraction-free listening.
|
- Focus mode for distraction-free listening.
|
||||||
|
- Mini player mode.
|
||||||
|
- Keyboard shortcuts for common actions.
|
||||||
- English and Spanish localization.
|
- English and Spanish localization.
|
||||||
|
|
||||||
|
### Settings
|
||||||
|
- Audio device selection and quality preferences.
|
||||||
|
- API keys configuration for self-hosted builds.
|
||||||
|
- Theme and appearance options.
|
||||||
|
|
||||||
## Open Source
|
## Open Source
|
||||||
|
|
||||||
QBZ is MIT-licensed and fully open source. No telemetry, no lock-in, and no hidden services. Just a clean, transparent player built for Linux audio fans.
|
QBZ is MIT-licensed and fully open source. No telemetry, no lock-in, and no hidden services. Just a clean, transparent player built for Linux audio fans.
|
||||||
@@ -69,24 +104,29 @@ QBZ draws inspiration from projects like qobuz-dl, and from the broader Linux au
|
|||||||
## Tech Stack
|
## Tech Stack
|
||||||
|
|
||||||
- **Desktop:** Rust + Tauri 2
|
- **Desktop:** Rust + Tauri 2
|
||||||
- **Frontend:** SvelteKit + TypeScript + Vite
|
- **Frontend:** SvelteKit 5 + TypeScript + Vite
|
||||||
- **Audio:** rodio + symphonia
|
- **Audio:** rodio + symphonia
|
||||||
- **Networking:** reqwest
|
- **Networking:** reqwest
|
||||||
- **Local library:** walkdir + lofty + rusqlite
|
- **Local library:** walkdir + lofty + rusqlite
|
||||||
- **Integrations:** souvlaki (MPRIS), notify-rust, SongLink (Odesli)
|
- **Integrations:** souvlaki (MPRIS), notify-rust, SongLink (Odesli)
|
||||||
- **UX:** svelte-i18n, lucide-svelte
|
- **UX:** svelte-i18n, lucide-svelte
|
||||||
|
|
||||||
## Development
|
## Building from Source
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
- Rust (latest stable)
|
- Rust (latest stable)
|
||||||
- Node.js 18+
|
- Node.js 20+
|
||||||
- Linux with audio support (PipeWire, ALSA, or PulseAudio)
|
- Linux with audio support (PipeWire, ALSA, or PulseAudio)
|
||||||
|
- System dependencies: `webkit2gtk-4.1`, `gtk3`, `alsa-lib`
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Clone the repository
|
||||||
|
git clone https://github.com/vicrodh/qbz.git
|
||||||
|
cd qbz
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
@@ -97,11 +137,9 @@ npm run tauri dev
|
|||||||
npm run tauri build
|
npm run tauri build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Environment Variables (Building from Source Only)
|
### Environment Variables
|
||||||
|
|
||||||
> **Note:** If you're using pre-built binaries from the [Releases](https://github.com/vicrodh/qbz/releases) page, Last.fm integration is already configured and ready to use. The following instructions are only for developers building from source.
|
When building from source, you need to provide your own API keys. Copy the example environment file:
|
||||||
|
|
||||||
Copy the example environment file and configure it with your credentials:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
@@ -109,42 +147,54 @@ cp .env.example .env
|
|||||||
|
|
||||||
#### Last.fm Integration
|
#### Last.fm Integration
|
||||||
|
|
||||||
To enable Last.fm scrobbling when building from source, you need to create a Last.fm API application:
|
|
||||||
|
|
||||||
1. Go to [Last.fm API Account](https://www.last.fm/api/account/create)
|
1. Go to [Last.fm API Account](https://www.last.fm/api/account/create)
|
||||||
2. Create a new application (any name works)
|
2. Create a new application
|
||||||
3. Copy your API Key and Shared Secret
|
3. Add to `.env`:
|
||||||
4. Update your `.env` file:
|
|
||||||
|
|
||||||
```env
|
```env
|
||||||
LAST_FM_API_KEY=your_api_key_here
|
LAST_FM_API_KEY=your_api_key
|
||||||
LAST_FM_API_SHARED_SECRET=your_shared_secret_here
|
LAST_FM_API_SHARED_SECRET=your_shared_secret
|
||||||
LAST_FM_APP_NAME=your_app_name
|
|
||||||
LAST_FM_APP_REGISTER=your_lastfm_username
|
|
||||||
```
|
```
|
||||||
|
|
||||||
The application will work without Last.fm credentials, but scrobbling will be disabled.
|
#### Discogs Integration (Local Library Artwork)
|
||||||
|
|
||||||
#### Discogs Integration
|
|
||||||
|
|
||||||
To enable automatic album artwork fetching from Discogs when building from source:
|
|
||||||
|
|
||||||
1. Go to [Discogs Developer Settings](https://www.discogs.com/settings/developers)
|
1. Go to [Discogs Developer Settings](https://www.discogs.com/settings/developers)
|
||||||
2. Create a new application
|
2. Create a new application
|
||||||
3. Copy your Consumer Key and Consumer Secret
|
3. Add to `.env`:
|
||||||
4. Update your `.env` file:
|
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DISCOGS_API_CLIENT_KEY=your_consumer_key_here
|
DISCOGS_API_CLIENT_KEY=your_consumer_key
|
||||||
DISCOGS_API_CLIENT_SECRET=your_consumer_secret_here
|
DISCOGS_API_CLIENT_SECRET=your_consumer_secret
|
||||||
```
|
```
|
||||||
|
|
||||||
The application will work without Discogs credentials, but automatic artwork fetching for local library will be disabled.
|
#### Spotify Integration (Playlist Import)
|
||||||
|
|
||||||
|
1. Go to [Spotify Developer Dashboard](https://developer.spotify.com/dashboard)
|
||||||
|
2. Create a new application
|
||||||
|
3. Add to `.env`:
|
||||||
|
|
||||||
|
```env
|
||||||
|
SPOTIFY_API_CLIENT_ID=your_client_id
|
||||||
|
SPOTIFY_API_CLIENT_SECRET=your_client_secret
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Tidal Integration (Playlist Import)
|
||||||
|
|
||||||
|
1. Go to [Tidal Developer Portal](https://developer.tidal.com/)
|
||||||
|
2. Create a new application
|
||||||
|
3. Add to `.env`:
|
||||||
|
|
||||||
|
```env
|
||||||
|
TIDAL_API_CLIENT_ID=your_client_id
|
||||||
|
TIDAL_API_CLIENT_SECRET=your_client_secret
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Note:** All integrations are optional. The application will work without them, but the corresponding features will be disabled.
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
qbz-nix/
|
qbz/
|
||||||
├── src/ # Frontend (SvelteKit)
|
├── src/ # Frontend (SvelteKit)
|
||||||
├── src-tauri/
|
├── src-tauri/
|
||||||
│ └── src/
|
│ └── src/
|
||||||
@@ -155,12 +205,21 @@ qbz-nix/
|
|||||||
│ ├── cast/ # Chromecast & DLNA casting
|
│ ├── cast/ # Chromecast & DLNA casting
|
||||||
│ ├── library/ # Local library backend
|
│ ├── library/ # Local library backend
|
||||||
│ ├── lastfm/ # Last.fm integration
|
│ ├── lastfm/ # Last.fm integration
|
||||||
|
│ ├── discogs/ # Discogs integration
|
||||||
|
│ ├── playlist_import/ # Spotify/Tidal import
|
||||||
│ ├── share/ # SongLink / share utilities
|
│ ├── share/ # SongLink / share utilities
|
||||||
│ ├── media_controls/ # MPRIS integration
|
│ ├── media_controls/ # MPRIS integration
|
||||||
│ └── commands/ # Tauri IPC commands
|
│ └── commands/ # Tauri IPC commands
|
||||||
|
├── packaging/
|
||||||
|
│ ├── aur/ # Arch Linux PKGBUILD
|
||||||
|
│ └── flatpak/ # Flatpak manifest
|
||||||
└── static/ # Static assets and logo
|
└── static/ # Static assets and logo
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! Please feel free to submit issues and pull requests.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT
|
MIT
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Maintainer: blitzkriegfc <blitzkriegfc@proton.me>
|
||||||
|
pkgname=qbz-bin
|
||||||
|
pkgver=1.0.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Native Qobuz client for Linux with Hi-Fi audio support (pre-built binary)"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/vicrodh/qbz"
|
||||||
|
license=('MIT')
|
||||||
|
depends=('webkit2gtk-4.1' 'gtk3' 'alsa-lib' 'libappindicator-gtk3')
|
||||||
|
optdepends=(
|
||||||
|
'pipewire-alsa: PipeWire audio support'
|
||||||
|
'pipewire-pulse: PulseAudio compatibility'
|
||||||
|
)
|
||||||
|
provides=('qbz')
|
||||||
|
conflicts=('qbz')
|
||||||
|
options=('!strip')
|
||||||
|
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/vicrodh/qbz/releases/download/v${pkgver}/qbz_${pkgver}_amd64.tar.gz")
|
||||||
|
sha256sums=('SKIP')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "${srcdir}"
|
||||||
|
|
||||||
|
# Install binary
|
||||||
|
install -Dm755 "qbz" "${pkgdir}/usr/bin/qbz"
|
||||||
|
|
||||||
|
# Install desktop file
|
||||||
|
install -Dm644 "qbz.desktop" "${pkgdir}/usr/share/applications/qbz.desktop"
|
||||||
|
|
||||||
|
# Install icons
|
||||||
|
for size in 32x32 128x128 256x256; do
|
||||||
|
if [[ -f "icons/hicolor/${size}/apps/qbz.png" ]]; then
|
||||||
|
install -Dm644 "icons/hicolor/${size}/apps/qbz.png" \
|
||||||
|
"${pkgdir}/usr/share/icons/hicolor/${size}/apps/qbz.png"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Install license
|
||||||
|
install -Dm644 "${srcdir}/../LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" 2>/dev/null || true
|
||||||
|
}
|
||||||
Reference in new issue
Block a user