Default stays linux-x64 (the only architecture built today). Override on the command line to target arm64 (or any other RID supported by Avalonia 12 on Linux): make deb POSTIT_RUNTIME=linux-arm64 The Makefile passes POSTIT_RUNTIME through to dpkg-buildpackage, which propagates it to debian/rules, which threads it into dotnet publish --runtime. Note: the .deb is mono-architecture. For a multi-arch .deb, the build must run twice (once per RID) and the resulting .debs can be combined with dpkg-gencontrol / Multi-Arch: same. Update README accordingly.
122 lines
3.1 KiB
Markdown
122 lines
3.1 KiB
Markdown
# postit-debian
|
|
|
|
Paquet Debian pour [PostIt.Desktop](../yavsc), le client desktop
|
|
Avalonia de la plateforme Yavsc.Org.
|
|
|
|
Le paquet expose la commande `postit` sur le système, installe
|
|
l'entrée `.desktop` dans le menu, et enregistre le scheme URI
|
|
`postit://` comme MIME handler (utilisé par l'OIDC Authorization
|
|
Code + PKCE pour le hand-off du callback — RFC 8252 §7.1).
|
|
|
|
Cible : Debian 13 (trixie). Testé également sur Ubuntu 24.04 LTS
|
|
(equivalent ABI).
|
|
|
|
## Construction
|
|
|
|
Pré-requis :
|
|
|
|
```bash
|
|
sudo apt install build-essential debhelper imagemagick librsvg2-bin \
|
|
dotnet-sdk-10.0 git
|
|
```
|
|
|
|
Sur Debian 13, installer .NET 10 depuis le dépôt officiel Microsoft :
|
|
|
|
```bash
|
|
wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb \
|
|
-O /tmp/ms-prod.deb
|
|
sudo dpkg -i /tmp/ms-prod.deb
|
|
sudo apt update
|
|
sudo apt install dotnet-sdk-10.0
|
|
```
|
|
|
|
Puis :
|
|
|
|
```bash
|
|
make deb
|
|
```
|
|
|
|
Le `.deb` atterrit dans le répertoire parent (ou `$POSTIT_OUT_DIR`).
|
|
|
|
Pour bumper la version amont sans modifier ce dépôt :
|
|
|
|
```bash
|
|
make deb POSTIT_GIT_TAG=1.0.1
|
|
make deb POSTIT_GIT_URL=https://github.com/fork/yavsc.git POSTIT_GIT_TAG=my-branch
|
|
```
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
sudo apt install ./postit_1.0.0-1_amd64.deb
|
|
```
|
|
|
|
ou directement :
|
|
|
|
```bash
|
|
sudo dpkg -i postit_1.0.0-1_amd64.deb
|
|
sudo apt -f install # résout les dépendances manquantes
|
|
```
|
|
|
|
Pour installer sur **arm64** :
|
|
|
|
```bash
|
|
# Sur une machine arm64 :
|
|
make clean && make deb # le .deb sera _arm64.deb
|
|
```
|
|
|
|
Le `debian/rules` publie avec `--runtime linux-x64` pour
|
|
amd64. Pour produire un .deb arm64, override :
|
|
|
|
```bash
|
|
make deb POSTIT_RUNTIME=linux-arm64
|
|
```
|
|
|
|
(le paramètre est exposé par `debian/rules` ; bump à ajouter si
|
|
besoin). À noter : **un seul runtime par build** — le `--runtime`
|
|
exclut les autres plateformes, donc le .deb est portable mais
|
|
mono-architecture.
|
|
|
|
## Vérification
|
|
|
|
Après installation :
|
|
|
|
```bash
|
|
$ which postit
|
|
/usr/bin/postit
|
|
$ postit --help # (l'application Avalonia ouvre sa fenêtre)
|
|
$ xdg-mime query default x-scheme-handler/postit
|
|
postit.desktop
|
|
$ xdg-open postit://callback?code=test
|
|
```
|
|
|
|
Le scheme handler lance PostIt avec l'URL en argument. En interne,
|
|
PostIt (PostIt.Desktop) appelle `SingleInstance.TryHandOffAsync`
|
|
puis sort, transferrant l'URL au process PostIt déjà actif via
|
|
un named pipe.
|
|
|
|
## Désinstallation
|
|
|
|
```bash
|
|
sudo apt remove postit
|
|
```
|
|
|
|
Le `postrm` du paquet rafraîchit la base `.desktop`. Le scheme
|
|
handler `postit://` n'est pas explicitement désenregistré
|
|
(système — par utilisateur c'est `xdg-mime default ...`).
|
|
|
|
## Maintenance
|
|
|
|
- Bumper `debian/changelog` à chaque release, conformément à la
|
|
Debian Policy §4.4 (entries datées, signées par le mainteneur).
|
|
- Mettre à jour `POSTIT_GIT_TAG` par défaut dans `debian/rules`
|
|
et `Makefile` à chaque release amont.
|
|
- Rebuild après changement de licence amont.
|
|
|
|
## Liens
|
|
|
|
- [pazof/yavsc](https://github.com/pazof/yavsc) — source amont.
|
|
- [doc/postit-oidc.md](https://github.com/pazof/yavsc/blob/main/doc/architecture/postit-oidc.md)
|
|
— flow OIDC + custom URI scheme.
|
|
- [Debian Policy Manual](https://www.debian.org/doc/debian-policy/)
|
|
— référence pour la structure d'un paquet.
|