Initial Debian package for PostIt.Desktop (yavsc)

This commit is contained in:
Paul Schneider 2026-06-28 00:10:15 +01:00
commit 9703ebf4dd
13 changed files with 421 additions and 0 deletions

109
README.md Normal file
View file

@ -0,0 +1,109 @@
# 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
make clean && make deb # sur une machine arm64, le .deb sera _arm64.deb
```
## 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.