.goreleaser.yaml RawHistoryFolder
1# Builds the ermite release for a pushed v* tag (.github/workflows/release.yml)
2# and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD
3# with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.
4version: 2
5
6project_name: neferwl
7
8# Releases are published on ermite. In CI the runner sets GITHUB_API_URL and
9# GITHUB_SERVER_URL to an address the job can reach; the public URLs are the
10# fallback for a local run.
11github_urls:
12 api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/'
13 upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/'
14 download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/'
15
16before:
17 hooks:
18 - go mod verify
19
20builds:
21 - id: neferwl
22 main: ./cmd/neferwl
23 binary: neferwl
24 env:
25 - CGO_ENABLED=0
26 goos: [linux]
27 goarch: [amd64, arm64]
28 flags:
29 - -trimpath
30 - -buildmode=pie
31 ldflags:
32 - -s -w -X main.version={{ .Version }}
33 # Same inputs give the same binary.
34 mod_timestamp: "{{ .CommitTimestamp }}"
35
36archives:
37 - id: neferwl
38 ids: [neferwl]
39 name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
40 formats: [tar.gz]
41 # Everything the PKGBUILD package() installs, at the paths of the repo.
42 files:
43 - LICENSE
44 - README.md
45 - examples/config
46 - examples/capture-allow
47 - packaging/neferwl-session
48 - packaging/neferwl.service
49 - packaging/neferwl-shutdown.target
50 - packaging/neferwl.desktop
51 - packaging/neferwl-portals.conf
52
53nfpms:
54 - id: neferwl
55 ids: [neferwl]
56 package_name: neferwl
57 file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}"
58 formats: [deb]
59 vendor: bnema
60 homepage: https://git.bnema.dev/neferwl
61 maintainer: "bnema <b@bnema.dev>"
62 description: A Wayland compositor that spends its frames on your apps, not on itself
63 license: AGPL-3.0-only
64 section: x11
65 bindir: /usr/bin
66 # Loaded at runtime (purego, no cgo): dpkg-shlibdeps cannot see them.
67 dependencies:
68 - libc6
69 - libinput10
70 - libseat1
71 - libudev1
72 - libxkbcommon0
73 - libvulkan1
74 - mesa-vulkan-drivers | vulkan-icd
75 - dbus
76 - libcap2-bin
77 suggests:
78 - xwayland-satellite
79 - foot
80 - fuzzel
81 - xdg-desktop-portal-gtk
82 - xdg-desktop-portal-gnome
83 - pipewire
84 scripts:
85 postinstall: packaging/deb/postinst
86 contents:
87 - src: packaging/neferwl-session
88 dst: /usr/bin/neferwl-session
89 file_info: {mode: 0755}
90 - src: packaging/neferwl.service
91 dst: /usr/lib/systemd/user/neferwl.service
92 - src: packaging/neferwl-shutdown.target
93 dst: /usr/lib/systemd/user/neferwl-shutdown.target
94 - src: packaging/neferwl.desktop
95 dst: /usr/share/wayland-sessions/neferwl.desktop
96 - src: packaging/neferwl-portals.conf
97 dst: /usr/share/xdg-desktop-portal/neferwl-portals.conf
98 - src: examples/config
99 dst: /usr/share/doc/neferwl/config.example
100 - src: examples/capture-allow
101 dst: /usr/share/doc/neferwl/capture-allow.example
102 - src: README.md
103 dst: /usr/share/doc/neferwl/README.md
104 - src: LICENSE
105 dst: /usr/share/doc/neferwl/copyright
106
107checksum:
108 name_template: checksums.txt
109 algorithm: sha256
110
111snapshot:
112 version_template: "{{ incpatch .Version }}-next"
113
114git:
115 tag_sort: -version:refname
116
117changelog:
118 sort: asc
119 use: git
120 filters:
121 exclude:
122 - "^style(\\([^)]+\\))?:"
123 - "^test(\\([^)]+\\))?:"
124 groups:
125 - title: Added
126 regexp: "^feat(\\([^)]+\\))?!?:"
127 order: 0
128 - title: Fixed
129 regexp: "^fix(\\([^)]+\\))?!?:"
130 order: 1
131 - title: Performance
132 regexp: "^perf(\\([^)]+\\))?!?:"
133 order: 2
134 - title: Changed
135 regexp: "^(refactor|build)(\\([^)]+\\))?!?:"
136 order: 3
137 - title: Documentation
138 regexp: "^docs(\\([^)]+\\))?!?:"
139 order: 4
140 - title: Maintenance
141 regexp: "^(chore|ci)(\\([^)]+\\))?!?:"
142 order: 5
143 - title: Other changes
144 order: 999
145
146release:
147 github:
148 owner: bnema
149 name: neferwl
150 draft: false
151 prerelease: auto
152 mode: replace
153 header: |
154 ## NeferWL {{ .Tag }}
155
156 ### Install on Arch Linux
157
158 ```sh
159 paru -S neferwl-bin # this release, pre-built (x86_64, aarch64)
160 paru -S neferwl-git # latest main, built from source
161 ```
162
163 ### Install the pre-built archive
164
165 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
166
167 ```sh
168 curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_linux_amd64.tar.gz
169 curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt
170 sha256sum -c --ignore-missing checksums.txt
171 ```
172
173 ### Install on Ubuntu 24.04 and 26.04
174
175 Replace `amd64` with `arm64` on ARM.
176
177 ```sh
178 curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_amd64.deb
179 curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt
180 sha256sum -c --ignore-missing checksums.txt
181 sudo apt install ./neferwl_{{ .Version }}_amd64.deb
182 ```
183
184 The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://git.bnema.dev/neferwl) for runtime dependencies and the session setup.
185
186aurs:
187 - name: neferwl-bin
188 ids: [neferwl]
189 homepage: https://git.bnema.dev/neferwl
190 # Public URL: github_urls.download is the CI-only relay address.
191 url_template: 'https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/{{ .ArtifactName }}'
192 description: A Wayland compositor that spends its frames on your apps, not on itself
193 maintainers:
194 - "bnema <b at bnema dot dev>"
195 license: AGPL-3.0-only
196 # The release workflow verifies and publishes the generated PKGBUILD.
197 skip_upload: true
198 # publish.sh ships the file next to the PKGBUILD.
199 install: ./packaging/neferwl.install
200 provides: [neferwl]
201 conflicts: [neferwl, neferwl-git]
202 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
203 depends:
204 - glibc
205 - libinput
206 - libxkbcommon
207 - seatd
208 - systemd-libs
209 - vulkan-icd-loader
210 - vulkan-driver
211 - wayland
212 - dbus
213 - libcap
214 optdepends:
215 - "xwayland-satellite>=0.7: X11 apps"
216 - "foot: default terminal"
217 - "fuzzel: launcher"
218 - "xdg-desktop-portal-gtk: file pickers and settings for apps"
219 - "xdg-desktop-portal-gnome: screen sharing and screenshots through the portal"
220 - "pipewire: screen sharing streams"
221 - "nefercap: screenshots and screen recording"
222 package: |-
223 install -Dm755 ./neferwl "${pkgdir}/usr/bin/neferwl"
224 install -Dm755 ./packaging/neferwl-session "${pkgdir}/usr/bin/neferwl-session"
225 install -Dm644 ./packaging/neferwl.service "${pkgdir}/usr/lib/systemd/user/neferwl.service"
226 install -Dm644 ./packaging/neferwl-shutdown.target "${pkgdir}/usr/lib/systemd/user/neferwl-shutdown.target"
227 install -Dm644 ./packaging/neferwl.desktop "${pkgdir}/usr/share/wayland-sessions/neferwl.desktop"
228 install -Dm644 ./packaging/neferwl-portals.conf "${pkgdir}/usr/share/xdg-desktop-portal/neferwl-portals.conf"
229 install -Dm644 ./examples/config "${pkgdir}/usr/share/doc/neferwl/config.example"
230 install -Dm644 ./examples/capture-allow "${pkgdir}/usr/share/doc/neferwl/capture-allow.example"
231 install -Dm644 ./README.md "${pkgdir}/usr/share/doc/neferwl/README.md"
232 install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"