@@ -144,12 +144,31 @@ main() {
144144 fi
145145
146146 if [ " $OS_NAME " = " ubuntu" ]; then
147+ # Ubuntu artifact compatibility:
148+ # GPUd uses github.com/mattn/go-sqlite3 with CGO enabled, but does not build
149+ # with the "libsqlite3" build tag. That means go-sqlite3 compiles its bundled
150+ # SQLite amalgamation into the gpud binary instead of dynamically linking
151+ # against Ubuntu's /usr/lib/.../libsqlite3.so. The distro-specific runtime
152+ # compatibility risk is therefore the C runtime ABI, not the host SQLite
153+ # package version.
154+ #
155+ # glibc preserves runtime backward compatibility for older linked symbols:
156+ # a binary built against an older glibc baseline can run on newer Ubuntu
157+ # releases, while the reverse is not guaranteed. The Ubuntu 24.04 artifact
158+ # is safe for Ubuntu 26.04 because it does not require Ubuntu 26.04-only
159+ # glibc symbols or any Ubuntu-provided SQLite shared library. Keep 22.04 on
160+ # its own artifact, and map newer supported LTS releases to the newest
161+ # existing Ubuntu artifact until we intentionally raise the glibc baseline or
162+ # add a real distro-specific dynamic dependency.
147163 case " $OS_VERSION " in
148- 22.04|24.04 )
164+ 22.04)
149165 OS_DISTRO=" _${OS_NAME}${OS_VERSION} "
150166 ;;
167+ 24.04|26.04)
168+ OS_DISTRO=" _${OS_NAME} 24.04"
169+ ;;
151170 * )
152- echo " GPUd $APP_VERSION supports Ubuntu 22.04 and 24 .04. Current version $OS_VERSION is not supported."
171+ echo " GPUd $APP_VERSION supports Ubuntu 22.04, 24.04, and 26 .04. Current version $OS_VERSION is not supported."
153172 exit 1
154173 ;;
155174 esac
0 commit comments