# Builds the ermite 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 # Releases are published on ermite. In CI the runner sets GITHUB_API_URL and # GITHUB_SERVER_URL to an address the job can reach; the public URLs are the # fallback for a local run. github_urls: api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/' upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/' download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/' 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://git.bnema.dev/neferwl maintainer: "bnema " description: A Wayland compositor that spends its frames on your apps, not on itself license: AGPL-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: git 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 curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_linux_amd64.tar.gz curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt sha256sum -c --ignore-missing checksums.txt ``` ### Install on Ubuntu 24.04 and 26.04 Replace `amd64` with `arm64` on ARM. ```sh curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_amd64.deb curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/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://git.bnema.dev/neferwl) for runtime dependencies and the session setup. aurs: - name: neferwl-bin ids: [neferwl] homepage: https://git.bnema.dev/neferwl # Public URL: github_urls.download is the CI-only relay address. url_template: 'https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/{{ .ArtifactName }}' description: A Wayland compositor that spends its frames on your apps, not on itself maintainers: - "bnema " license: AGPL-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"