3.5 KiB
Contributing to Deezer Linux
Thank you for considering contributing to the unofficial Deezer Linux port! This document provides guidelines for contributing to the project.
Code of Conduct
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
How to Contribute
Reporting Bugs
- Before creating an issue, please check if it hasn't been reported already
- Use the issue template if available
- Include detailed steps to reproduce the bug
- Specify your system information (OS, architecture, package type)
Suggesting Enhancements
- Use clear and descriptive titles
- Provide a step-by-step description of the suggested enhancement
- Explain why this enhancement would be useful
Pull Requests
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature
) - Make your changes
- Build one or more packages
- Commit your changes (
git commit -m 'feat: Add some feature'
) - Push to the branch (
git push origin feature/your-feature
) - Open a Pull Request
- Provide information about the changes made and the packages built and manually tested
Build Requirements
Ensure you have all required dependencies:
- Node.js (20 recommended)
- npm
- 7z
- make
- wget
Development Setup
make install_deps
Patching
Creating a Patch
To create a patch, clone the repository and run:
make patch-new
Edit the files you want to change in the app
directory.
[!TIP] You do not need to generate a patch file to test your changes. Open the
app
folder after runningmake patch-new
and make your changes. Then runmake build_{target}_{arch}
to try your changes.
When you are done, commit your changes, and then generate the patch:
make patch-gen
The patch will be saved in the patches
directory. Make sure to rename the patch file to something meaningful and follow the naming convention. Add the patch to the echoed list in the Makefile
.
[!TIP] If possible, you may want to add a switch to allow the users to use the feature you added or not. Do not forget to mention it.
You can now try your patch by building and executing the package:
make build_{target}_{arch}
Applying a Patch
To manually apply a patch, run:
apply -p1 -dapp < patches/{name}.patch
[!NOTE] Deezer does not provide all the information needed to implement some features.
Deezer provides:
- Player state (playing, paused)
- Track metadata (title, artist, album, cover URL, duration, and more)
- Shuffle and repeat state
Deezer does not provide:
- Track position
Updating
Updating the Source Executable
This section is automated via GitHub Actions, but can be done manually.
- Update the source executable URL:
curl -Ls -o /dev/null -w %{url_effective} https://www.deezer.com/desktop/download\?platform\=win32\&architecture\=x86
- Update the source executable SHA256:
curl -Ls https://www.deezer.com/desktop/download\?platform\=win32\&architecture\=x86 | sha256sum
Updating the Electron Version
This section is not automated via GitHub Actions.
To get the Electron version used, run:
strings ./source/Deezer.exe | grep '^Chrome/[0-9.]* Electron/[0-9.]*'
Legal Notes
Remember that this is an unofficial port. Any contribution must:
- Respect Deezer's intellectual property
- Not modify core Deezer functionality
- Follow software distribution best practices
Questions?
Open an issue for any questions not covered by this guide.
Thank you for contributing!