Merge 48800da9adb0579d631006563138d4866e2dff4e into 26fa5a1cad1d2764ade51683f309f670de6e0c61
4 files · +26 -24
M .github/workflows/release.yml +3 -8
| @@ -8,7 +8,10 @@ concurrency: | |||
| 8 | 8 | group: release-${{ github.ref }} | |
| 9 | 9 | cancel-in-progress: false | |
| 10 | 10 | jobs: | |
| 11 | + | # Releases are published by ermite (git.bnema.dev); the GitHub mirror | |
| 12 | + | # receives the tags but must not publish a second release or AUR push. | |
| 11 | 13 | check: | |
| 14 | + | if: github.server_url != 'https://github.com' | |
| 12 | 15 | uses: ./.github/workflows/ci.yml | |
| 13 | 16 | ||
| 14 | 17 | release: | |
| @@ -16,8 +19,6 @@ jobs: | |||
| 16 | 19 | runs-on: ubuntu-latest | |
| 17 | 20 | permissions: | |
| 18 | 21 | contents: write # create the release | |
| 19 | - | id-token: write # sign the provenance attestation | |
| 20 | - | attestations: write | |
| 21 | 22 | steps: | |
| 22 | 23 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| 23 | 24 | with: | |
| @@ -44,12 +45,6 @@ jobs: | |||
| 44 | 45 | args: release --clean | |
| 45 | 46 | env: | |
| 46 | 47 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| 47 | - | - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 | |
| 48 | - | with: | |
| 49 | - | subject-path: | | |
| 50 | - | dist/*.tar.gz | |
| 51 | - | dist/*.deb | |
| 52 | - | dist/checksums.txt | |
| 53 | 48 | - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| 54 | 49 | with: | |
| 55 | 50 | name: aur-bin | |
| @@ -8,7 +8,10 @@ concurrency: | |||||
| 8 | group: release-${{ github.ref }} | 8 | group: release-${{ github.ref }} | ||
| 9 | cancel-in-progress: false | 9 | cancel-in-progress: false | ||
| 10 | jobs: | 10 | jobs: | ||
| 11 | + | # Releases are published by ermite (git.bnema.dev); the GitHub mirror | |||
| 12 | + | # receives the tags but must not publish a second release or AUR push. | |||
| 11 | check: | 13 | check: | ||
| 14 | + | if: github.server_url != 'https://github.com' | |||
| 12 | uses: ./.github/workflows/ci.yml | 15 | uses: ./.github/workflows/ci.yml | ||
| 13 | 16 | ||||
| 14 | release: | 17 | release: | ||
| @@ -16,8 +19,6 @@ jobs: | |||||
| 16 | runs-on: ubuntu-latest | 19 | runs-on: ubuntu-latest | ||
| 17 | permissions: | 20 | permissions: | ||
| 18 | contents: write # create the release | 21 | contents: write # create the release | ||
| 19 | - | id-token: write # sign the provenance attestation | |||
| 20 | - | attestations: write | |||
| 21 | steps: | 22 | steps: | ||
| 22 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 23 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| 23 | with: | 24 | with: | ||
| @@ -44,12 +45,6 @@ jobs: | |||||
| 44 | args: release --clean | 45 | args: release --clean | ||
| 45 | env: | 46 | env: | ||
| 46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | 47 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| 47 | - | - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 | |||
| 48 | - | with: | |||
| 49 | - | subject-path: | | |||
| 50 | - | dist/*.tar.gz | |||
| 51 | - | dist/*.deb | |||
| 52 | - | dist/checksums.txt | |||
| 53 | - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | 48 | - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| 54 | with: | 49 | with: | ||
| 55 | name: aur-bin | 50 | name: aur-bin | ||
M .goreleaser.yaml +19 -12
| @@ -1,10 +1,18 @@ | |||
| 1 | - | # Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml) | |
| 1 | + | # Builds the ermite release for a pushed v* tag (.github/workflows/release.yml) | |
| 2 | 2 | # and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD | |
| 3 | 3 | # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it. | |
| 4 | 4 | version: 2 | |
| 5 | 5 | ||
| 6 | 6 | project_name: neferwl | |
| 7 | 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. | |
| 11 | + | github_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 | + | ||
| 8 | 16 | before: | |
| 9 | 17 | hooks: | |
| 10 | 18 | - go mod verify | |
| @@ -49,7 +57,7 @@ nfpms: | |||
| 49 | 57 | file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}" | |
| 50 | 58 | formats: [deb] | |
| 51 | 59 | vendor: bnema | |
| 52 | - | homepage: https://github.com/bnema/neferwl | |
| 60 | + | homepage: https://git.bnema.dev/neferwl | |
| 53 | 61 | maintainer: "bnema <b@bnema.dev>" | |
| 54 | 62 | description: A Wayland compositor that spends its frames on your apps, not on itself | |
| 55 | 63 | license: GPL-3.0-only | |
| @@ -108,7 +116,7 @@ git: | |||
| 108 | 116 | ||
| 109 | 117 | changelog: | |
| 110 | 118 | sort: asc | |
| 111 | - | use: github | |
| 119 | + | use: git | |
| 112 | 120 | filters: | |
| 113 | 121 | exclude: | |
| 114 | 122 | - "^style(\\([^)]+\\))?:" | |
| @@ -157,9 +165,9 @@ release: | |||
| 157 | 165 | Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. | |
| 158 | 166 | ||
| 159 | 167 | ```sh | |
| 160 | - | gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt | |
| 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 | |
| 161 | 170 | sha256sum -c --ignore-missing checksums.txt | |
| 162 | - | gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl | |
| 163 | 171 | ``` | |
| 164 | 172 | ||
| 165 | 173 | ### Install on Ubuntu 24.04 and 26.04 | |
| @@ -167,21 +175,20 @@ release: | |||
| 167 | 175 | Replace `amd64` with `arm64` on ARM. | |
| 168 | 176 | ||
| 169 | 177 | ```sh | |
| 170 | - | gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_amd64.deb' -p checksums.txt | |
| 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 | |
| 171 | 180 | sha256sum -c --ignore-missing checksums.txt | |
| 172 | 181 | sudo apt install ./neferwl_{{ .Version }}_amd64.deb | |
| 173 | 182 | ``` | |
| 174 | 183 | ||
| 175 | - | 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. | |
| 176 | - | footer: | | |
| 177 | - | --- | |
| 178 | - | ||
| 179 | - | **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }} | |
| 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. | |
| 180 | 185 | ||
| 181 | 186 | aurs: | |
| 182 | 187 | - name: neferwl-bin | |
| 183 | 188 | ids: [neferwl] | |
| 184 | - | homepage: https://github.com/bnema/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 }}' | |
| 185 | 192 | description: A Wayland compositor that spends its frames on your apps, not on itself | |
| 186 | 193 | maintainers: | |
| 187 | 194 | - "bnema <b at bnema dot dev>" | |
| @@ -1,10 +1,18 @@ | |||||
| 1 | - | # Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml) | 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 | 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. | 3 | # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it. | ||
| 4 | version: 2 | 4 | version: 2 | ||
| 5 | 5 | ||||
| 6 | project_name: neferwl | 6 | project_name: neferwl | ||
| 7 | 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. | |||
| 11 | + | github_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 | + | ||||
| 8 | before: | 16 | before: | ||
| 9 | hooks: | 17 | hooks: | ||
| 10 | - go mod verify | 18 | - go mod verify | ||
| @@ -49,7 +57,7 @@ nfpms: | |||||
| 49 | file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}" | 57 | file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}" | ||
| 50 | formats: [deb] | 58 | formats: [deb] | ||
| 51 | vendor: bnema | 59 | vendor: bnema | ||
| 52 | - | homepage: https://github.com/bnema/neferwl | 60 | + | homepage: https://git.bnema.dev/neferwl |
| 53 | maintainer: "bnema <b@bnema.dev>" | 61 | maintainer: "bnema <b@bnema.dev>" | ||
| 54 | description: A Wayland compositor that spends its frames on your apps, not on itself | 62 | description: A Wayland compositor that spends its frames on your apps, not on itself | ||
| 55 | license: GPL-3.0-only | 63 | license: GPL-3.0-only | ||
| @@ -108,7 +116,7 @@ git: | |||||
| 108 | 116 | ||||
| 109 | changelog: | 117 | changelog: | ||
| 110 | sort: asc | 118 | sort: asc | ||
| 111 | - | use: github | 119 | + | use: git |
| 112 | filters: | 120 | filters: | ||
| 113 | exclude: | 121 | exclude: | ||
| 114 | - "^style(\\([^)]+\\))?:" | 122 | - "^style(\\([^)]+\\))?:" | ||
| @@ -157,9 +165,9 @@ release: | |||||
| 157 | Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. | 165 | Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM. | ||
| 158 | 166 | ||||
| 159 | ```sh | 167 | ```sh | ||
| 160 | - | gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt | 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 | |||
| 161 | sha256sum -c --ignore-missing checksums.txt | 170 | sha256sum -c --ignore-missing checksums.txt | ||
| 162 | - | gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl | |||
| 163 | ``` | 171 | ``` | ||
| 164 | 172 | ||||
| 165 | ### Install on Ubuntu 24.04 and 26.04 | 173 | ### Install on Ubuntu 24.04 and 26.04 | ||
| @@ -167,21 +175,20 @@ release: | |||||
| 167 | Replace `amd64` with `arm64` on ARM. | 175 | Replace `amd64` with `arm64` on ARM. | ||
| 168 | 176 | ||||
| 169 | ```sh | 177 | ```sh | ||
| 170 | - | gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_amd64.deb' -p checksums.txt | 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 | |||
| 171 | sha256sum -c --ignore-missing checksums.txt | 180 | sha256sum -c --ignore-missing checksums.txt | ||
| 172 | sudo apt install ./neferwl_{{ .Version }}_amd64.deb | 181 | sudo apt install ./neferwl_{{ .Version }}_amd64.deb | ||
| 173 | ``` | 182 | ``` | ||
| 174 | 183 | ||||
| 175 | - | 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. | 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. |
| 176 | - | footer: | | |||
| 177 | - | --- | |||
| 178 | - | ||||
| 179 | - | **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }} | |||
| 180 | 185 | ||||
| 181 | aurs: | 186 | aurs: | ||
| 182 | - name: neferwl-bin | 187 | - name: neferwl-bin | ||
| 183 | ids: [neferwl] | 188 | ids: [neferwl] | ||
| 184 | - | homepage: https://github.com/bnema/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 }}' | |||
| 185 | description: A Wayland compositor that spends its frames on your apps, not on itself | 192 | description: A Wayland compositor that spends its frames on your apps, not on itself | ||
| 186 | maintainers: | 193 | maintainers: | ||
| 187 | - "bnema <b at bnema dot dev>" | 194 | - "bnema <b at bnema dot dev>" | ||
M README.md +2 -2
| @@ -47,7 +47,7 @@ make install # build a package from HEAD and install it with pacman | |||
| 47 | 47 | ||
| 48 | 48 | ### Ubuntu 24.04 and later | |
| 49 | 49 | ||
| 50 | - | Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://github.com/bnema/neferwl/releases), then install it with apt, which pulls the runtime dependencies: | |
| 50 | + | Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://git.bnema.dev/neferwl/releases), then install it with apt, which pulls the runtime dependencies: | |
| 51 | 51 | ||
| 52 | 52 | ```sh | |
| 53 | 53 | sha256sum -c --ignore-missing checksums.txt | |
| @@ -72,7 +72,7 @@ Copy `/usr/share/doc/neferwl/config.example` to `~/.config/neferwl/config` to st | |||
| 72 | 72 | ||
| 73 | 73 | ### Other distributions | |
| 74 | 74 | ||
| 75 | - | Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://github.com/bnema/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`. | |
| 75 | + | Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://git.bnema.dev/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`. | |
| 76 | 76 | ||
| 77 | 77 | ## Configuration | |
| 78 | 78 | ||
| @@ -47,7 +47,7 @@ make install # build a package from HEAD and install it with pacman | |||||
| 47 | 47 | ||||
| 48 | ### Ubuntu 24.04 and later | 48 | ### Ubuntu 24.04 and later | ||
| 49 | 49 | ||||
| 50 | - | Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://github.com/bnema/neferwl/releases), then install it with apt, which pulls the runtime dependencies: | 50 | + | Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://git.bnema.dev/neferwl/releases), then install it with apt, which pulls the runtime dependencies: |
| 51 | 51 | ||||
| 52 | ```sh | 52 | ```sh | ||
| 53 | sha256sum -c --ignore-missing checksums.txt | 53 | sha256sum -c --ignore-missing checksums.txt | ||
| @@ -72,7 +72,7 @@ Copy `/usr/share/doc/neferwl/config.example` to `~/.config/neferwl/config` to st | |||||
| 72 | 72 | ||||
| 73 | ### Other distributions | 73 | ### Other distributions | ||
| 74 | 74 | ||||
| 75 | - | Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://github.com/bnema/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`. | 75 | + | Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://git.bnema.dev/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`. |
| 76 | 76 | ||||
| 77 | ## Configuration | 77 | ## Configuration | ||
| 78 | 78 | ||||
M packaging/aur/neferwl-git/PKGBUILD +2 -2
| @@ -6,7 +6,7 @@ pkgver=0.1.0.r78.ge0b15ca | |||
| 6 | 6 | pkgrel=1 | |
| 7 | 7 | pkgdesc='A Wayland compositor that spends its frames on your apps, not on itself (git version)' | |
| 8 | 8 | arch=('x86_64' 'aarch64') | |
| 9 | - | url='https://github.com/bnema/neferwl' | |
| 9 | + | url='https://git.bnema.dev/neferwl' | |
| 10 | 10 | license=('GPL-3.0-only') | |
| 11 | 11 | # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. | |
| 12 | 12 | depends=('glibc' 'libinput' 'libxkbcommon' 'seatd' 'systemd-libs' 'vulkan-icd-loader' | |
| @@ -22,7 +22,7 @@ optdepends=('xwayland-satellite>=0.7: X11 apps' | |||
| 22 | 22 | provides=('neferwl') | |
| 23 | 23 | conflicts=('neferwl' 'neferwl-bin') | |
| 24 | 24 | install=neferwl.install | |
| 25 | - | source=('git+https://github.com/bnema/neferwl.git') | |
| 25 | + | source=('git+https://git.bnema.dev/neferwl.git') | |
| 26 | 26 | sha256sums=('SKIP') | |
| 27 | 27 | ||
| 28 | 28 | pkgver() { | |
| @@ -6,7 +6,7 @@ pkgver=0.1.0.r78.ge0b15ca | |||||
| 6 | pkgrel=1 | 6 | pkgrel=1 | ||
| 7 | pkgdesc='A Wayland compositor that spends its frames on your apps, not on itself (git version)' | 7 | pkgdesc='A Wayland compositor that spends its frames on your apps, not on itself (git version)' | ||
| 8 | arch=('x86_64' 'aarch64') | 8 | arch=('x86_64' 'aarch64') | ||
| 9 | - | url='https://github.com/bnema/neferwl' | 9 | + | url='https://git.bnema.dev/neferwl' |
| 10 | license=('GPL-3.0-only') | 10 | license=('GPL-3.0-only') | ||
| 11 | # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. | 11 | # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan. | ||
| 12 | depends=('glibc' 'libinput' 'libxkbcommon' 'seatd' 'systemd-libs' 'vulkan-icd-loader' | 12 | depends=('glibc' 'libinput' 'libxkbcommon' 'seatd' 'systemd-libs' 'vulkan-icd-loader' | ||
| @@ -22,7 +22,7 @@ optdepends=('xwayland-satellite>=0.7: X11 apps' | |||||
| 22 | provides=('neferwl') | 22 | provides=('neferwl') | ||
| 23 | conflicts=('neferwl' 'neferwl-bin') | 23 | conflicts=('neferwl' 'neferwl-bin') | ||
| 24 | install=neferwl.install | 24 | install=neferwl.install | ||
| 25 | - | source=('git+https://github.com/bnema/neferwl.git') | 25 | + | source=('git+https://git.bnema.dev/neferwl.git') |
| 26 | sha256sums=('SKIP') | 26 | sha256sums=('SKIP') | ||
| 27 | 27 | ||||
| 28 | pkgver() { | 28 | pkgver() { | ||