authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-10-06 14:51:55-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-06 21:51:55+00:00
logf4f148eb670622a049ae6561d7795011e383fc43
treed0d8c24a23252f5582cb9e4b6d63547d9ab92780
parentc9b21b28e2cebc4c9cbd80726e757df36309dea8
signature Signed by PGP key B5690EEEBB952194

fix(desktop): include Linux package license and app metadata (#16597)


2 files changed, 44 insertions(+), 1 deletions(-)

apps/desktop/resources/linux/com.t3tools.t3code.metainfo.xml created+32
...@@ -0,0 +1,32 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<component type="desktop-application">
3 <id>com.t3tools.t3code</id>
4 <metadata_license>CC0-1.0</metadata_license>
5 <project_license>MIT</project_license>
6 <name>T3 Code</name>
7 <summary>Desktop GUI for coding agents</summary>
8 <developer id="com.t3tools">
9 <name>T3 Tools Inc.</name>
10 </developer>
11 <description>
12 <p>
13 T3 Code is an open-source desktop app for coding agents. Work with your
14 existing agent subscriptions, review code changes, and run commands in
15 your projects.
16 </p>
17 <p>
18 Connect from desktop, web, or mobile to continue working remotely.
19 </p>
20 </description>
21 <launchable type="desktop-id">t3code.desktop</launchable>
22 <icon type="stock">t3code</icon>
23 <provides>
24 <binary>t3code</binary>
25 </provides>
26 <categories>
27 <category>Development</category>
28 </categories>
29 <url type="homepage">https://t3.codes</url>
30 <url type="bugtracker">https://github.com/pingdotgg/t3code/issues</url>
31 <url type="vcs-browser">https://github.com/pingdotgg/t3code</url>
32</component>
scripts/build-desktop-artifact.ts+12-1
...@@ -929,6 +929,7 @@ interface StagePackageJson {...@@ -929,6 +929,7 @@ interface StagePackageJson {
929 readonly private: true;929 readonly private: true;
930 readonly packageManager: string;930 readonly packageManager: string;
931 readonly description: string;931 readonly description: string;
932 readonly license: string;
932 readonly homepage: string;933 readonly homepage: string;
933 readonly author: string;934 readonly author: string;
934 readonly main: string;935 readonly main: string;
...@@ -2766,6 +2767,8 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* (...@@ -2766,6 +2767,8 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* (
2766 // dynamically loads the system libfuse2 library. Pin the static runtime so2767 // dynamically loads the system libfuse2 library. Pin the static runtime so
2767 // the AppImage also launches on distributions that only provide FUSE 3.2768 // the AppImage also launches on distributions that only provide FUSE 3.
2768 buildConfig.toolsets = { appimage: "1.0.3" };2769 buildConfig.toolsets = { appimage: "1.0.3" };
2770 const path = yield* Path.Path;
2771 const repoRoot = yield* RepoRoot;
2769 buildConfig.linux = {2772 buildConfig.linux = {
2770 // The .deb is built from the same unpacked app after the AppImage.2773 // The .deb is built from the same unpacked app after the AppImage.
2771 // electron-builder lists both in latest-linux.yml and writes2774 // electron-builder lists both in latest-linux.yml and writes
...@@ -2794,6 +2797,12 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* (...@@ -2794,6 +2797,12 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* (
2794 },2797 },
2795 };2798 };
2796 buildConfig.deb = {2799 buildConfig.deb = {
2800 // FPM runs outside the staged app directory, so source paths must be absolute.
2801 // AppStream consumers associate this metadata with our t3code.desktop entry.
2802 fpm: [
2803 `${path.join(repoRoot, "apps/desktop/resources/linux/com.t3tools.t3code.metainfo.xml")}=/usr/share/metainfo/com.t3tools.t3code.metainfo.xml`,
2804 `${path.join(repoRoot, "LICENSE")}=/usr/share/doc/t3code/copyright`,
2805 ],
2797 // Electron's runtime libraries. Debian 13 and Ubuntu 24.04 renamed some2806 // Electron's runtime libraries. Debian 13 and Ubuntu 24.04 renamed some
2798 // for 64-bit time; the old name is the fallback for older releases.2807 // for 64-bit time; the old name is the fallback for older releases.
2799 depends: [2808 depends: [
...@@ -3702,7 +3711,9 @@ const buildDesktopArtifact = Effect.fn("buildDesktopArtifact")(function* (...@@ -3702,7 +3711,9 @@ const buildDesktopArtifact = Effect.fn("buildDesktopArtifact")(function* (
3702 t3codeCommitHash: commitHash,3711 t3codeCommitHash: commitHash,
3703 private: true,3712 private: true,
3704 packageManager: rootPackageJson.packageManager,3713 packageManager: rootPackageJson.packageManager,
3705 description: "T3 Code desktop build",3714 description:
3715 "T3 Code is an open-source desktop app for coding agents. Work with your existing agent subscriptions, review code changes, and run commands in your projects. Connect from desktop, web, or mobile to continue working remotely.",
3716 license: "MIT",
3706 // Required by the .deb control file.3717 // Required by the .deb control file.
3707 homepage: "https://t3.codes",3718 homepage: "https://t3.codes",
3708 author: "T3 Tools",3719 author: "T3 Tools",