# Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml) # and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it. version: 2 project_name: neferwl before: hooks: - go mod verify builds: - id: neferwl main: ./cmd/neferwl binary: neferwl env: - CGO_ENABLED=0 goos: [linux] goarch: [amd64, arm64] flags: - -trimpath - -buildmode=pie ldflags: - -s -w -X main.version={{ .Version }} # Same inputs give the same binary. mod_timestamp: "{{ .CommitTimestamp }}" archives: - id: neferwl ids: [neferwl] name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" formats: [tar.gz] # Everything the PKGBUILD package() installs, at the paths of the repo. files: - LICENSE - README.md - examples/config - examples/capture-allow - packaging/neferwl-session - packaging/neferwl.service - packaging/neferwl-shutdown.target - packaging/neferwl.desktop - packaging/neferwl-portals.conf nfpms: - id: neferwl ids: [neferwl] package_name: neferwl file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}" formats: [deb] vendor: bnema homepage: https://github.com/bnema/neferwl maintainer: "bnema " description: A Wayland compositor that spends its frames on your apps, not on itself license: GPL-3.0-only section: x11 bindir: /usr/bin # Loaded at runtime (purego, no cgo): dpkg-shlibdeps cannot see them. dependencies: - libc6 - libinput10 - libseat1 - libudev1 - libxkbcommon0 - libvulkan1 - mesa-vulkan-drivers | vulkan-icd - dbus - libcap2-bin suggests: - xwayland-satellite - foot - fuzzel - xdg-desktop-portal-gtk - xdg-desktop-portal-gnome - pipewire scripts: postinstall: packaging/deb/postinst contents: - src: packaging/neferwl-session dst: /usr/bin/neferwl-session file_info: {mode: 0755} - src: packaging/neferwl.service dst: /usr/lib/systemd/user/neferwl.service - src: packaging/neferwl-shutdown.target dst: /usr/lib/systemd/user/neferwl-shutdown.target - src: packaging/neferwl.desktop dst: /usr/share/wayland-sessions/neferwl.desktop - src: packaging/neferwl-portals.conf dst: /usr/share/xdg-desktop-portal/neferwl-portals.conf - src: examples/config dst: /usr/share/doc/neferwl/config.example - src: examples/capture-allow dst: /usr/share/doc/neferwl/capture-allow.example - src: README.md dst: /usr/share/doc/neferwl/README.md - src: LICENSE dst: /usr/share/doc/neferwl/copyright checksum: name_template: checksums.txt algorithm: sha256 snapshot: version_template: "{{ incpatch .Version }}-next" git: tag_sort: -version:refname changelog: sort: asc use: github filters: exclude: - "^style(\\([^)]+\\))?:" - "^test(\\([^)]+\\))?:" groups: - title: Added regexp: "^feat(\\([^)]+\\))?!?:" order: 0 - title: Fixed regexp: "^fix(\\([^)]+\\))?!?:" order: 1 - title: Performance regexp: "^perf(\\([^)]+\\))?!?:" order: 2 - title: Changed regexp: "^(refactor|build)(\\([^)]+\\))?!?:" order: 3 - title: Documentation regexp: "^docs(\\([^)]+\\))?!?:" order: 4 - title: Maintenance regexp: "^(chore|ci)(\\([^)]+\\))?!?:" order: 5 - title: Other changes order: 999 release: github: owner: bnema name: neferwl draft: false prerelease: auto mode: replace header: | ## NeferWL {{ .Tag }} ### Install on Arch Linux ```sh paru -S neferwl-bin # this release, pre-built (x86_64, aarch64) paru -S neferwl-git # latest main, built from source ``` ### Install the pre-built archive Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. ```sh gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt sha256sum -c --ignore-missing checksums.txt gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl ``` ### Install on Ubuntu 24.04 and 26.04 Replace `amd64` with `arm64` on ARM. ```sh gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_amd64.deb' -p checksums.txt sha256sum -c --ignore-missing checksums.txt sudo apt install ./neferwl_{{ .Version }}_amd64.deb ``` The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://github.com/bnema/neferwl#readme) for runtime dependencies and the session setup. footer: | --- **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }} aurs: - name: neferwl-bin ids: [neferwl] homepage: https://github.com/bnema/neferwl description: A Wayland compositor that spends its frames on your apps, not on itself maintainers: - "bnema " license: GPL-3.0-only # The release workflow verifies and publishes the generated PKGBUILD. skip_upload: true # publish.sh ships the file next to the PKGBUILD. install: ./packaging/neferwl.install provides: [neferwl] conflicts: [neferwl, neferwl-git] # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. depends: - glibc - libinput - libxkbcommon - seatd - systemd-libs - vulkan-icd-loader - vulkan-driver - wayland - dbus - libcap optdepends: - "xwayland-satellite>=0.7: X11 apps" - "foot: default terminal" - "fuzzel: launcher" - "xdg-desktop-portal-gtk: file pickers and settings for apps" - "xdg-desktop-portal-gnome: screen sharing and screenshots through the portal" - "pipewire: screen sharing streams" - "nefercap: screenshots and screen recording" package: |- install -Dm755 ./neferwl "${pkgdir}/usr/bin/neferwl" install -Dm755 ./packaging/neferwl-session "${pkgdir}/usr/bin/neferwl-session" install -Dm644 ./packaging/neferwl.service "${pkgdir}/usr/lib/systemd/user/neferwl.service" install -Dm644 ./packaging/neferwl-shutdown.target "${pkgdir}/usr/lib/systemd/user/neferwl-shutdown.target" install -Dm644 ./packaging/neferwl.desktop "${pkgdir}/usr/share/wayland-sessions/neferwl.desktop" install -Dm644 ./packaging/neferwl-portals.conf "${pkgdir}/usr/share/xdg-desktop-portal/neferwl-portals.conf" install -Dm644 ./examples/config "${pkgdir}/usr/share/doc/neferwl/config.example" install -Dm644 ./examples/capture-allow "${pkgdir}/usr/share/doc/neferwl/capture-allow.example" install -Dm644 ./README.md "${pkgdir}/usr/share/doc/neferwl/README.md" install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"