fix(desktop): install AppStream metainfo in Linux packages (#36872)
Co-authored-by: adityachaudhary99 <adityaachaudhary2003@gmail.com>
This commit is contained in:
@@ -24,6 +24,8 @@ for (const channel of channels) {
|
|||||||
expect(config.extraMetadata?.desktopName).toBe(`${channel.appId}.desktop`)
|
expect(config.extraMetadata?.desktopName).toBe(`${channel.appId}.desktop`)
|
||||||
expect(config.linux?.executableName).toBe(channel.appId)
|
expect(config.linux?.executableName).toBe(channel.appId)
|
||||||
expect(config.linux?.desktop?.entry?.StartupWMClass).toBe(channel.appId)
|
expect(config.linux?.desktop?.entry?.StartupWMClass).toBe(channel.appId)
|
||||||
|
expect(config.deb?.fpm).toContainEqual(expect.stringContaining(`/usr/share/metainfo/${channel.appId}.metainfo.xml`))
|
||||||
|
expect(config.rpm?.fpm).toContainEqual(expect.stringContaining(`/usr/share/metainfo/${channel.appId}.metainfo.xml`))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,8 +39,8 @@ test("keeps a hidden prod launcher for old Linux pins", async () => {
|
|||||||
if (previous === undefined) delete process.env.OPENCODE_CHANNEL
|
if (previous === undefined) delete process.env.OPENCODE_CHANNEL
|
||||||
else process.env.OPENCODE_CHANNEL = previous
|
else process.env.OPENCODE_CHANNEL = previous
|
||||||
|
|
||||||
expect(config.deb?.fpm?.[0]).toEndWith(`${legacyDesktopEntry}=/usr/share/applications/opencode-desktop.desktop`)
|
expect(config.deb?.fpm?.some((entry) => entry.endsWith("opencode-desktop.desktop=/usr/share/applications/opencode-desktop.desktop"))).toBe(true)
|
||||||
expect(config.rpm?.fpm?.[0]).toEndWith(`${legacyDesktopEntry}=/usr/share/applications/opencode-desktop.desktop`)
|
expect(config.rpm?.fpm?.some((entry) => entry.endsWith("opencode-desktop.desktop=/usr/share/applications/opencode-desktop.desktop"))).toBe(true)
|
||||||
|
|
||||||
const desktop = await Bun.file(legacyDesktopEntry).text()
|
const desktop = await Bun.file(legacyDesktopEntry).text()
|
||||||
expect(desktop).toContain("Exec=/opt/OpenCode/ai.opencode.desktop %U")
|
expect(desktop).toContain("Exec=/opt/OpenCode/ai.opencode.desktop %U")
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ const signScript = path.join(rootDir, "script", "sign-windows.ps1")
|
|||||||
const legacyDesktopEntry = path.join(packageDir, "resources", "linux", "opencode-desktop.desktop")
|
const legacyDesktopEntry = path.join(packageDir, "resources", "linux", "opencode-desktop.desktop")
|
||||||
const legacyDesktopEntryFpm = `${legacyDesktopEntry}=/usr/share/applications/opencode-desktop.desktop`
|
const legacyDesktopEntryFpm = `${legacyDesktopEntry}=/usr/share/applications/opencode-desktop.desktop`
|
||||||
|
|
||||||
|
const metainfoFpm = (appId: string) =>
|
||||||
|
`${path.join(packageDir, "resources", `${appId}.metainfo.xml`)}=/usr/share/metainfo/${appId}.metainfo.xml`
|
||||||
|
|
||||||
async function signWindows(configuration: { path: string }) {
|
async function signWindows(configuration: { path: string }) {
|
||||||
if (process.platform !== "win32") return
|
if (process.platform !== "win32") return
|
||||||
if (process.env.GITHUB_ACTIONS !== "true") return
|
if (process.env.GITHUB_ACTIONS !== "true") return
|
||||||
@@ -116,7 +119,8 @@ function getConfig() {
|
|||||||
...base,
|
...base,
|
||||||
appId,
|
appId,
|
||||||
productName: "OpenCode Dev",
|
productName: "OpenCode Dev",
|
||||||
rpm: { packageName: "opencode-dev" },
|
deb: { fpm: [metainfoFpm(appId)] },
|
||||||
|
rpm: { packageName: "opencode-dev", fpm: [metainfoFpm(appId)] },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "beta": {
|
case "beta": {
|
||||||
@@ -126,7 +130,8 @@ function getConfig() {
|
|||||||
productName: "OpenCode Beta",
|
productName: "OpenCode Beta",
|
||||||
protocols: { name: "OpenCode Beta", schemes: ["opencode"] },
|
protocols: { name: "OpenCode Beta", schemes: ["opencode"] },
|
||||||
publish: { provider: "github", owner: "anomalyco", repo: "opencode-beta", channel: "latest" },
|
publish: { provider: "github", owner: "anomalyco", repo: "opencode-beta", channel: "latest" },
|
||||||
rpm: { packageName: "opencode-beta" },
|
deb: { fpm: [metainfoFpm(appId)] },
|
||||||
|
rpm: { packageName: "opencode-beta", fpm: [metainfoFpm(appId)] },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "prod": {
|
case "prod": {
|
||||||
@@ -136,8 +141,8 @@ function getConfig() {
|
|||||||
productName: "OpenCode",
|
productName: "OpenCode",
|
||||||
protocols: { name: "OpenCode", schemes: ["opencode"] },
|
protocols: { name: "OpenCode", schemes: ["opencode"] },
|
||||||
publish: { provider: "github", owner: "anomalyco", repo: "opencode", channel: "latest" },
|
publish: { provider: "github", owner: "anomalyco", repo: "opencode", channel: "latest" },
|
||||||
deb: { fpm: [legacyDesktopEntryFpm] },
|
deb: { fpm: [metainfoFpm(appId), legacyDesktopEntryFpm] },
|
||||||
rpm: { packageName: "opencode", fpm: [legacyDesktopEntryFpm] },
|
rpm: { packageName: "opencode", fpm: [metainfoFpm(appId), legacyDesktopEntryFpm] },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user