summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/docs/handbook/linux-packaging.md
blob: 728034683fb01747b577d9e2530c9a9bd37bac76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Linux Packaging

> **Location**: `docs/packaging/os-specific/linux/`  
> **Platforms**: Nix, Flatpak, distribution packages
> **Latest Version**: 0.0.5-1

---

## Overview

ProjT Launcher supports multiple Linux packaging formats to reach different user bases and distribution requirements.

---

## Packaging Formats

### Nix / NixOS

The recommended method for reproducible builds.

**Location**: `nix/`, `flake.nix`

```sh
# Build
nix build .#projtlauncher

# Run without installing
nix run .#projtlauncher

# Development shell
nix develop
```

See [nix.md](./nix.md) for detailed instructions.

### Flatpak

Sandboxed application format.

**Location**: `docs/packaging/os-specific/linux/flathub/`

The Flatpak manifest is maintained separately for Flathub submission.

### Distribution Packages

ProjT Launcher is packaged for various distributions:

| Distribution | Package | Status |
|--------------|---------|--------|
| Arch Linux (AUR) | `projtlauncher` | Community |
| Fedora COPR | `projtlauncher` | Community |
| openSUSE OBS | `projtlauncher` | Community |

Check [Repology](https://repology.org/project/projtlauncher/versions) for current availability.

---

## Building for Distribution

### Requirements

- CMake 3.22+
- Qt 6.x
- C++20 compiler
- Ninja (recommended)

### Build Commands

```sh
cmake -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/usr \
  -DLauncher_BUILD_PLATFORM=linux
cmake --build build
DESTDIR="$pkgdir" cmake --install build
```

### Platform Identifier

Set `Launcher_BUILD_PLATFORM` to identify your distribution:

```cmake
-DLauncher_BUILD_PLATFORM=archlinux
-DLauncher_BUILD_PLATFORM=fedora
-DLauncher_BUILD_PLATFORM=flatpak
```

---

## Desktop Integration

### Desktop File

Installed to `/usr/share/applications/`:

```
org.projecttick.ProjTLauncher.desktop
```

### Icon

Installed to `/usr/share/icons/hicolor/`:

```
org.projecttick.ProjTLauncher.svg
```

### AppStream Metadata

Installed to `/usr/share/metainfo/`:

```
org.projecttick.ProjTLauncher.metainfo.xml
```

---

## Related Documentation

- [Nix Packaging](./nix.md)
- [Program Info](./program_info.md) - Branding configuration