Public Access
The third desktop platform shipped as nothing: a checkout somebody built.
VelopackUpdateChannel already named the two platforms it serves rather than
negating the one it does not, so that a Linux package would be an addition
there rather than something that had silently half-happened. This is it, and
it is deliberately not a Velopack channel.
There is no updater in the package at all. On this platform dnf is already an
updater the user trusts, audits and controls, and a second one answering to
this project instead is the capability ADR 0013 rule 4 spends a page keeping
unsettable. The cost is real and is written down rather than glossed: nothing
tells a Linux user that a newer build exists, because there is no repository
to tell them.
Rule 3 is untouched. The build job packages the release-shaped RPM on every
main build and every tag and uploads nothing, exactly as it does for Windows
and macOS; the desktop job packages the nightly-shaped one and puts it on the
rolling nightly-desktop release beside the Windows feed. Two RPMs with
different names owning different paths cannot replace one another, so rule 9's
separations come almost free here — the profile split still belongs to the
build, through DodoChannel.
vpk verifies that what it packs actually calls VelopackApp.Build().Run(), and
nothing here does that for us, so scripts/ci-linux-rpm.sh makes its own
assertions: it asks the finished package what it requires, what it provides,
what it holds and what modes those carry. Two of those checks exist because
the first realistic payload tripped them.
- .NET's libmscordbi.so links libmscordaccore.so. With bundled provides
excluded — which they must be, or this package would advertise libcoreclr
to the whole system — that produced a dependency no host on earth can
satisfy. The requires exclusion is computed from the payload rather than
listed, because a list of Microsoft's internal file names goes stale in
the direction that yields an uninstallable package.
- cp -a inherits the publish directory's modes, and off the wrong filesystem
that meant a world-writable /opt/DodoSSH: any local account able to
replace the SSH client every other account runs. For an application
holding a team's credentials in plaintext that is the trust model walked
around rather than attacked. Every mode is now set absolutely.
Verified as far as a runner can: both packages install side by side on Fedora
44, resolve webkit2gtk4.1 2.52.5 — the backend MainWindow records as measured
— keep separate launchers, icons and profiles, and dnf remove takes one tree
and leaves the other. 0.0.1~alpha.0.143 sorts below both 0.0.1 and the next
height. What no runner can answer is Phase 19, which is new and unwalked.
RHEL 9 is deliberately not claimed. It ships WebKitGTK's 4.0 line under
libwebkit2gtk-4.0.so.37, and an or-branch for it was written and then removed:
nobody has run the head there, and dnf refusing with "nothing provides
libwebkit2gtk-4.1.so.0" is a better answer than an install that draws a blank
terminal. Same sentence, and the same reason, as the missing Intel Mac.
x86_64 only, for that reason and not a different one.
54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
# Normalise line endings: LF in the repo, native on checkout.
|
|
* text=auto
|
|
|
|
# Source
|
|
*.cs text diff=csharp
|
|
*.csproj text
|
|
*.slnx text
|
|
*.props text
|
|
*.targets text
|
|
*.json text
|
|
*.axaml text
|
|
*.xaml text
|
|
*.ts text
|
|
*.js text
|
|
*.css text
|
|
*.html text
|
|
*.md text
|
|
*.yml text
|
|
*.yaml text
|
|
*.sql text
|
|
|
|
# Files that must keep LF regardless of platform — shell scripts run in Linux
|
|
# containers, Dockerfiles are read by a Linux daemon, and an RPM spec is a shell
|
|
# script in disguise: rpmbuild feeds its %install section to /bin/sh, where a
|
|
# carriage return at the end of a line is an argument rather than nothing.
|
|
*.sh text eol=lf
|
|
*.spec text eol=lf
|
|
Dockerfile text eol=lf
|
|
*.Dockerfile text eol=lf
|
|
Caddyfile text eol=lf
|
|
|
|
# Windows-only scripts keep CRLF
|
|
*.cmd text eol=crlf
|
|
*.bat text eol=crlf
|
|
*.ps1 text eol=crlf
|
|
|
|
# Binary — never diff or convert
|
|
*.png binary
|
|
*.jpg binary
|
|
*.ico binary
|
|
*.icns binary
|
|
*.gif binary
|
|
*.pdf binary
|
|
*.zip binary
|
|
*.gz binary
|
|
*.dll binary
|
|
*.so binary
|
|
*.dylib binary
|
|
*.pfx binary
|
|
*.snk binary
|
|
|
|
# Test fixtures are byte-exact contracts — never touch their line endings.
|
|
tests/fixtures/** -text
|