@pheem49/mint 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/.github/workflows/release.yml +1 -1
  2. package/Cargo.lock +34 -3
  3. package/Cargo.toml +2 -2
  4. package/README.md +20 -6
  5. package/Release_Note.md +129 -0
  6. package/assets/Mint_CLI.png +0 -0
  7. package/bin/mint +0 -0
  8. package/crates/mint-cli/Cargo.toml +1 -0
  9. package/crates/mint-cli/src/agent.rs +242 -54
  10. package/crates/mint-cli/src/main.rs +397 -74
  11. package/crates/mint-core/src/agent_loop.rs +1 -0
  12. package/crates/mint-core/src/api_server.rs +64 -2
  13. package/crates/mint-core/src/browser.rs +456 -0
  14. package/crates/mint-core/src/channels.rs +1 -0
  15. package/crates/mint-core/src/chat.rs +3 -0
  16. package/crates/mint-core/src/config.rs +130 -1
  17. package/crates/mint-core/src/lib.rs +19 -0
  18. package/crates/mint-core/src/orchestration.rs +317 -12
  19. package/crates/mint-core/src/skills.rs +113 -4
  20. package/crates/mint-core/src/tts.rs +3 -1
  21. package/crates/mint-core/src/workflows.rs +1 -22
  22. package/flatpak/com.pheem49.mint.desktop +9 -0
  23. package/flatpak/com.pheem49.mint.metainfo.xml +35 -0
  24. package/flatpak/com.pheem49.mint.yaml +52 -0
  25. package/package.json +1 -1
  26. package/shared-modules/.github/workflows/ci.yml +120 -0
  27. package/shared-modules/.github/workflows/update.yaml +28 -0
  28. package/shared-modules/CODEOWNERS +23 -0
  29. package/shared-modules/README.md +79 -0
  30. package/shared-modules/SDL/README.md +3 -0
  31. package/shared-modules/SDL/SDL-1.2.15.json +51 -0
  32. package/shared-modules/SDL/SDL_Pango-0.1.2-API-adds.patch +118 -0
  33. package/shared-modules/SDL/SDL_image-1.2.12.json +25 -0
  34. package/shared-modules/SDL/SDL_mixer-1.2.12.json +27 -0
  35. package/shared-modules/SDL/SDL_net-1.2.8.json +19 -0
  36. package/shared-modules/SDL/SDL_pango-0.1.2.json +26 -0
  37. package/shared-modules/SDL/SDL_ttf-2.0.11.json +28 -0
  38. package/shared-modules/SDL/libsdl-1.2.15-strict-prototypes.patch +316 -0
  39. package/shared-modules/SDL/sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch +24 -0
  40. package/shared-modules/SDL/sdl-libx11-build.patch +59 -0
  41. package/shared-modules/SDL/sdl-sysloadso-buffer-length.patch +27 -0
  42. package/shared-modules/SDL/sdl12-compat.json +22 -0
  43. package/shared-modules/SDL2/SDL2_image.json +27 -0
  44. package/shared-modules/SDL2/SDL2_ttf.json +29 -0
  45. package/shared-modules/cld2/CMakeLists.txt +157 -0
  46. package/shared-modules/cld2/cld2.json +24 -0
  47. package/shared-modules/clutter/clutter.json +72 -0
  48. package/shared-modules/dbus-glib/dbus-glib.json +29 -0
  49. package/shared-modules/glew/glew.json +36 -0
  50. package/shared-modules/glu/glu-9.json +12 -0
  51. package/shared-modules/gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch +180 -0
  52. package/shared-modules/gtk2/gtk2-common-themes.json +360 -0
  53. package/shared-modules/gtk2/gtk2-fix-crash-in-show-uri.patch +30 -0
  54. package/shared-modules/gtk2/gtk2-gcc14.patch +281 -0
  55. package/shared-modules/gtk2/gtk2-gcc15.patch +250 -0
  56. package/shared-modules/gtk2/gtk2-murrine-c99.patch +34 -0
  57. package/shared-modules/gtk2/gtk2-use-adwaita-theme.patch +80 -0
  58. package/shared-modules/gtk2/gtk2.json +120 -0
  59. package/shared-modules/gtk2/ibus-gcc15.patch +13 -0
  60. package/shared-modules/gtk2/murrine-engine-fix-crash.patch +12 -0
  61. package/shared-modules/gtk2/readme.md +10 -0
  62. package/shared-modules/intltool/intltool-0.51.json +20 -0
  63. package/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch +59 -0
  64. package/shared-modules/lame/0001-Build-xmm_quantize_sub.c-with-msse.patch +34 -0
  65. package/shared-modules/lame/0002-Include-GTK-1-autoconf-directives-in-build-system.patch +222 -0
  66. package/shared-modules/lame/0003-Patch-out-remaining-ansi2knr.patch +70 -0
  67. package/shared-modules/lame/0004-initscr-is-not-used-anywhere-in-lame-sourcetree.patch +41 -0
  68. package/shared-modules/lame/0005-Update-autoconf.patch +81 -0
  69. package/shared-modules/lame/lame-3.99.5.json +32 -0
  70. package/shared-modules/libappindicator/libappindicator-gtk2-12.10.json +140 -0
  71. package/shared-modules/libappindicator/libappindicator-gtk3-12.10.json +140 -0
  72. package/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json +140 -0
  73. package/shared-modules/libappindicator/patches/0001-libappindicator-ftbfs.patch +20 -0
  74. package/shared-modules/libappindicator/patches/0002-libappindicator-no-python.patch +888 -0
  75. package/shared-modules/libappindicator/patches/0003-libappindicator-fix-crash-from-incorrect-signal-emission.patch +74 -0
  76. package/shared-modules/libappindicator/patches/0004-libappindicator-fix-crash-iterating-icon-themes.patch +11 -0
  77. package/shared-modules/libayatana-appindicator/0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch +51 -0
  78. package/shared-modules/libayatana-appindicator/0001-Make-introspection-configurable.patch +44 -0
  79. package/shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json +121 -0
  80. package/shared-modules/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch +123 -0
  81. package/shared-modules/libcanberra/libcanberra.json +44 -0
  82. package/shared-modules/libmad/libmad.json +19 -0
  83. package/shared-modules/libsecret/libsecret.json +23 -0
  84. package/shared-modules/libsoup/libsoup-2.4.json +14 -0
  85. package/shared-modules/libusb/libusb.json +27 -0
  86. package/shared-modules/linux-audio/dssi.json +31 -0
  87. package/shared-modules/linux-audio/fftw3f-static.json +44 -0
  88. package/shared-modules/linux-audio/fftw3f.json +42 -0
  89. package/shared-modules/linux-audio/fluidsynth2-static.json +30 -0
  90. package/shared-modules/linux-audio/fluidsynth2.json +19 -0
  91. package/shared-modules/linux-audio/ladspa.json +26 -0
  92. package/shared-modules/linux-audio/lash.json +35 -0
  93. package/shared-modules/linux-audio/libinstpatch.json +16 -0
  94. package/shared-modules/linux-audio/liblo-static.json +22 -0
  95. package/shared-modules/linux-audio/liblo.json +17 -0
  96. package/shared-modules/linux-audio/lilv-static.json +94 -0
  97. package/shared-modules/linux-audio/lilv.json +82 -0
  98. package/shared-modules/linux-audio/lrdf.json +57 -0
  99. package/shared-modules/linux-audio/lv2.json +21 -0
  100. package/shared-modules/linux-audio/patches/lash/0001-configure-remove-aclocal-m4.patch +29 -0
  101. package/shared-modules/linux-audio/patches/lash/0002-Fix-build-with-recent-gcc.patch +73 -0
  102. package/shared-modules/linux-audio/patches/lash/0003-Fix-linking.patch +136 -0
  103. package/shared-modules/linux-audio/patches/raptor-libxml.patch +31 -0
  104. package/shared-modules/linux-audio/patches/stk-install.sh +54 -0
  105. package/shared-modules/linux-audio/stk.json +28 -0
  106. package/shared-modules/lua5.1/0004-Fix-stack-overflow-in-vararg-functions.patch +21 -0
  107. package/shared-modules/lua5.1/lua-5.1.5-so.patch +43 -0
  108. package/shared-modules/lua5.1/lua-5.1.5.json +42 -0
  109. package/shared-modules/lua5.3/lua-5.3.5.json +41 -0
  110. package/shared-modules/lua5.3/lua.pc.in +8 -0
  111. package/shared-modules/lua5.3/luaconf.patch +47 -0
  112. package/shared-modules/lua5.3/makefile-add-liblua.so-rule.patch +47 -0
  113. package/shared-modules/lua5.4/lua-5.4.json +41 -0
  114. package/shared-modules/lua5.4/lua.pc.in +8 -0
  115. package/shared-modules/lua5.4/luaconf.patch +34 -0
  116. package/shared-modules/lua5.4/makefile-add-liblua.so-rule.patch +42 -0
  117. package/shared-modules/luajit/luajit.json +30 -0
  118. package/shared-modules/lzo/lzo.json +27 -0
  119. package/shared-modules/mac/mac.json +18 -0
  120. package/shared-modules/physfs/physfs.json +26 -0
  121. package/shared-modules/pygame/audiofile-gcc6.patch +21 -0
  122. package/shared-modules/pygame/cython-fixes.patch +34 -0
  123. package/shared-modules/pygame/fluidsynth-no-rawmidi.patch +69 -0
  124. package/shared-modules/pygame/glib.patch +25 -0
  125. package/shared-modules/pygame/pygame1-python2.json +157 -0
  126. package/shared-modules/pygtk/pygtk-c99.patch +15 -0
  127. package/shared-modules/pygtk/pygtk.json +117 -0
  128. package/shared-modules/pygtk/pygtk.patch +39 -0
  129. package/shared-modules/python2.7/python-2.7.json +48 -0
  130. package/shared-modules/smpeg/smpeg-0.4.5.json +50 -0
  131. package/shared-modules/smpeg/smpeg-am-prog-as.patch +12 -0
  132. package/shared-modules/smpeg/smpeg-export-mpegaudio-class.patch +17 -0
  133. package/shared-modules/smpeg/smpeg-gcc6.patch +40 -0
  134. package/shared-modules/smpeg/smpeg-no-gtk.patch +37 -0
  135. package/shared-modules/squashfs-tools/squashfs-tools.json +25 -0
  136. package/shared-modules/update-checker.sh +50 -0
  137. package/shared-modules/vorbisgain/0001-temp_files.patch +75 -0
  138. package/shared-modules/vorbisgain/0002-errno.patch +33 -0
  139. package/shared-modules/vorbisgain/0003-manpage.patch +248 -0
  140. package/shared-modules/vorbisgain/0004-vorbisgain_mtime.patch +183 -0
  141. package/shared-modules/vorbisgain/0005-double_fclose.patch +21 -0
  142. package/shared-modules/vorbisgain/0006-manpage_hyphens.patch +56 -0
  143. package/shared-modules/vorbisgain/0007-recursively_spelling.patch +14 -0
  144. package/shared-modules/vorbisgain/0008-manpage_recursion_mistake.patch +23 -0
  145. package/shared-modules/vorbisgain/0009-hardening.patch +13 -0
  146. package/shared-modules/vorbisgain/0010-fclose.patch +13 -0
  147. package/shared-modules/vorbisgain/README.md +23 -0
  148. package/shared-modules/vorbisgain/vorbisgain_0.37-2.json +29 -0
  149. package/src/renderer/shared/agentProgress.ts +145 -0
  150. package/src/renderer/shared/calculator.ts +52 -0
  151. package/src/renderer/shared/components/AgentActivityDrawer.tsx +72 -0
  152. package/src/renderer/shared/components/AgentActivityTable.tsx +66 -0
  153. package/src/renderer/shared/components/ApprovalCard.tsx +93 -0
  154. package/src/renderer/shared/components/ChatCodeBlock.tsx +75 -0
  155. package/src/renderer/shared/components/ThinkingBlock.tsx +101 -0
  156. package/src/renderer/shared/constants/models.ts +91 -0
  157. package/src/renderer/shared/platform.ts +82 -0
  158. package/src/renderer/shared/types.ts +140 -0
  159. package/src/renderer/shared/utils/agentActivity.ts +187 -0
  160. package/src/renderer/shared/utils/approval.ts +1 -0
  161. package/src/renderer/shared/utils/approval.tsx +64 -0
  162. package/src/renderer/shared/utils/markdown.tsx +347 -0
  163. package/src/renderer/shared/utils/providers.ts +36 -0
  164. package/src/renderer/shared/utils/speech.ts +216 -0
  165. package/src/renderer/shared/utils/ui.ts +147 -0
  166. package/src/renderer/src/agentProgress.ts +11 -39
  167. package/src/renderer/src/calculator.ts +3 -46
  168. package/src/renderer/src/components/ChatPanel.tsx +230 -1202
  169. package/src/renderer/src/components/ImageStudioPanel.tsx +11 -1
  170. package/src/renderer/src/components/MintDashboard.tsx +63 -171
  171. package/src/renderer/src/components/PicturesLibrary.tsx +32 -8
  172. package/src/renderer/src/components/Settings/AgentsTab.tsx +362 -0
  173. package/src/renderer/src/components/Settings/AutomationTab.tsx +0 -22
  174. package/src/renderer/src/components/Settings/PluginsTab.tsx +221 -41
  175. package/src/renderer/src/components/SettingsWindow.tsx +54 -12
  176. package/src/renderer/src/components/WorkspacePanel.tsx +66 -9
  177. package/src/renderer/src/css/image-studio.css +6 -0
  178. package/src/renderer/src/css/styles.css +148 -11
  179. package/src/renderer/src/index.css +12 -1
  180. package/src/renderer/src/tauri.ts +169 -143
  181. package/src/renderer/src-web/agentProgress.ts +11 -39
  182. package/src/renderer/src-web/calculator.ts +3 -46
  183. package/src/renderer/src-web/components/ChatPanel.tsx +223 -1199
  184. package/src/renderer/src-web/components/ImageStudioPanel.tsx +11 -1
  185. package/src/renderer/src-web/components/MintDashboard.tsx +31 -172
  186. package/src/renderer/src-web/components/PicturesLibrary.tsx +23 -29
  187. package/src/renderer/src-web/components/Settings/AgentsTab.tsx +362 -0
  188. package/src/renderer/src-web/components/Settings/AutomationTab.tsx +0 -22
  189. package/src/renderer/src-web/components/Settings/PluginsTab.tsx +221 -41
  190. package/src/renderer/src-web/components/SettingsWindow.tsx +54 -12
  191. package/src/renderer/src-web/css/image-studio.css +6 -0
  192. package/src/renderer/src-web/css/styles.css +184 -12
  193. package/src/renderer/src-web/index.css +12 -1
  194. package/src/renderer/src-web/tauri.ts +204 -104
  195. package/src-tauri/src/browser.rs +1 -141
  196. package/src-tauri/src/headless.rs +3 -2
  197. package/src-tauri/src/lib.rs +254 -59
  198. package/src-tauri/src/webhooks.rs +1 -0
  199. package/src-tauri/src/workflows.rs +57 -4
  200. package/src-tauri/tauri.conf.json +1 -1
@@ -0,0 +1,9 @@
1
+ [Desktop Entry]
2
+ Name=Mint Agent
3
+ Comment=A native Tauri desktop AI assistant with a Rust backend and React UI
4
+ Exec=mint-desktop
5
+ Icon=com.pheem49.mint
6
+ Type=Application
7
+ Terminal=false
8
+ Categories=Utility;Development;
9
+ StartupWMClass=mint-desktop
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <component type="desktop-application">
3
+ <id>com.pheem49.mint</id>
4
+ <metadata_license>CC0-1.0</metadata_license>
5
+ <project_license>MIT</project_license>
6
+ <name>Mint Agent</name>
7
+ <summary>A native Tauri desktop AI assistant with a Rust backend and React UI</summary>
8
+ <description>
9
+ <p>
10
+ Mint Agent is a native desktop AI assistant built on Tauri. It features a modern, reactive React UI and a powerful Rust backend to assist you with tasks, run local command orchestrations, perform screen captures, and run workflows seamlessly.
11
+ </p>
12
+ <p>
13
+ Features:
14
+ </p>
15
+ <ul>
16
+ <li>High performance and lightweight memory footprint.</li>
17
+ <li>Local Rust agent orchestrator.</li>
18
+ <li>Smart context integration and tool execution.</li>
19
+ <li>Multi-provider AI chat and image generation tools.</li>
20
+ </ul>
21
+ </description>
22
+ <launchable type="desktop-id">com.pheem49.mint.desktop</launchable>
23
+ <screenshots>
24
+ <screenshot type="default">
25
+ <caption>Mint Agent main chat interface and workspaces</caption>
26
+ <image>https://raw.githubusercontent.com/pheem49/Mint-CLI/main/assets/Mint_Desktop.png</image>
27
+ </screenshot>
28
+ </screenshots>
29
+ <url type="homepage">https://github.com/pheem49/Mint-CLI</url>
30
+ <url type="bugtracker">https://github.com/pheem49/Mint-CLI/issues</url>
31
+ <provides>
32
+ <binary>mint-desktop</binary>
33
+ </provides>
34
+ <developer_name>pheem49</developer_name>
35
+ </component>
@@ -0,0 +1,52 @@
1
+ app-id: com.pheem49.mint
2
+ runtime: org.gnome.Platform
3
+ runtime-version: '47'
4
+ sdk: org.gnome.Sdk
5
+ sdk-extensions:
6
+ - org.freedesktop.Sdk.Extension.rust-stable
7
+ command: mint-desktop
8
+ build-options:
9
+ append-path: /usr/lib/sdk/rust-stable/bin
10
+ env:
11
+ PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
12
+ LDFLAGS: -L/app/lib -L/app/lib64
13
+ LD_LIBRARY_PATH: /app/lib:/app/lib64
14
+ TAURI_ENV_DEBUG: "false"
15
+ finish-args:
16
+ # Graphic sockets for UI
17
+ - --socket=x11
18
+ - --socket=wayland
19
+ - --device=dri
20
+ - --share=ipc
21
+ # Network permission for AI Agent tasks and APIs
22
+ - --share=network
23
+ # Audio notifications/TTS
24
+ - --socket=pulseaudio
25
+ # Filesystem permissions matching application config scope
26
+ - --filesystem=xdg-config/mint:create
27
+ # D-Bus permissions for Tray Icons (AppIndicator)
28
+ - --talk-name=org.ayatana
29
+ - --talk-name=org.kde.StatusNotifierWatcher
30
+ modules:
31
+ # Reference Flathub's shared module for libayatana-appindicator (requires cloning shared-modules repository)
32
+ - ../shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json
33
+ # Note: For strict Flathub compliance, npm and cargo packages should be generated
34
+ # offline using flatpak-node-generator and flatpak-cargo-generator.
35
+ # This manifest represents the build structure using the project source directory.
36
+ - name: mint-desktop
37
+ buildsystem: simple
38
+ build-options:
39
+ build-args:
40
+ - --share=network
41
+ build-commands:
42
+ # Build the Tauri Rust backend binary (Frontend UI must be built on the host first)
43
+ - cargo build --release --bin mint-desktop
44
+ # Install executable, desktop shortcut, metainfo, and app icon
45
+ - install -Dm755 target/release/mint-desktop /app/bin/mint-desktop
46
+ - install -Dm644 flatpak/com.pheem49.mint.desktop /app/share/applications/com.pheem49.mint.desktop
47
+ - install -Dm644 flatpak/com.pheem49.mint.metainfo.xml /app/share/metainfo/com.pheem49.mint.metainfo.xml
48
+ - install -Dm644 assets/icon.png /app/share/icons/hicolor/512x512/apps/com.pheem49.mint.png
49
+ sources:
50
+ - type: git
51
+ url: https://github.com/pheem49/Mint-CLI.git
52
+ branch: main
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pheem49/mint",
3
- "version": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "description": "A native Tauri desktop AI assistant with a Rust backend and React UI.",
5
5
  "scripts": {
6
6
  "dev:web": "vite --config vite.config.web.ts",
@@ -0,0 +1,120 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: master
6
+ pull_request:
7
+ branches: master
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ CI:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ # 4.2.2
18
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
19
+ with:
20
+ persist-credentials: false
21
+
22
+ - name: Set up dependencies
23
+ run: |
24
+ sudo add-apt-repository ppa:flatpak/stable
25
+ sudo apt-get update
26
+ sudo apt-get install -y flatpak dbus-daemon jq
27
+ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
28
+ flatpak install flathub -y org.flatpak.Builder
29
+
30
+ - name: Validate manifests
31
+ run: |
32
+ set -e
33
+ for i in $(find . -type f -name "*.json"); do flatpak run org.flatpak.Builder --show-manifest "$i"; done
34
+ rm -rf .flatpak-builder
35
+
36
+ find . -maxdepth 1 -mindepth 1 -type d ! -path './.github' ! -path './.git' | while read dir; do
37
+ if [ "$(find "$dir" -maxdepth 1 -type f -name '*.json' | wc -l)" -eq 0 ]; then
38
+ echo "Error: $dir has no JSON manifest"
39
+ exit 1
40
+ fi
41
+ done
42
+
43
+ files="$(find . -type f \( -name '*.yml' -o -name '*.yaml' \) ! -path './.github/*' ! -path './.git')"
44
+ if [ -n "$files" ]; then
45
+ echo "Error: YML/YAML file found: $files"
46
+ exit 1
47
+ fi
48
+
49
+ - name: Validate JSON
50
+ run: |
51
+ find . -type f -name '*.json' -exec sh -c 'for f do jq empty "$f" 2>&1 >/dev/null | sed "s|^|$f: |"; done' sh {} \;
52
+
53
+ - name: Build changed manifests against stable Freedesktop SDK
54
+ if: github.event_name == 'pull_request'
55
+ env:
56
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57
+ GH_REPO: ${{ github.repository }}
58
+ run: |
59
+ set -e
60
+ FILES=$(gh pr view "${{ github.event.number }}" --json files --jq '.files[].path')
61
+
62
+ for f in $FILES; do
63
+ if [[ "$f" == *.json && -f "$f" ]]; then
64
+ echo "Building manifest for $f"
65
+
66
+ RUNTIME_VERSION=$(flatpak remote-ls --columns=ref flathub \
67
+ | grep "runtime/org.freedesktop.Platform/x86_64/" \
68
+ | sed 's|.*/||' \
69
+ | sort -V \
70
+ | tail -n1)
71
+
72
+ cat > org.example.stable.yml <<EOF
73
+ id: org.example.stable
74
+ runtime: org.freedesktop.Platform
75
+ runtime-version: '$RUNTIME_VERSION'
76
+ sdk: org.freedesktop.Sdk
77
+ modules:
78
+ - $f
79
+ EOF
80
+
81
+ cat org.example.stable.yml
82
+ dbus-run-session flatpak run org.flatpak.Builder --verbose --user --force-clean \
83
+ --install-deps-from=flathub builddir org.example.stable.yml
84
+ fi
85
+ done
86
+
87
+ - name: Build changed manifests against oldstable Freedesktop SDK
88
+ if: github.event_name == 'pull_request'
89
+ env:
90
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
91
+ GH_REPO: ${{ github.repository }}
92
+ run: |
93
+ set -e
94
+ FILES=$(gh pr view "${{ github.event.number }}" --json files --jq '.files[].path')
95
+
96
+ for f in $FILES; do
97
+ if [[ "$f" == *.json && -f "$f" ]]; then
98
+ echo "Building manifest for $f"
99
+
100
+ RUNTIME_VERSION=$(flatpak remote-ls --columns=ref flathub \
101
+ | grep "runtime/org.freedesktop.Platform/x86_64/" \
102
+ | sed 's|.*/||' \
103
+ | sort -V \
104
+ | tail -n2|head -1)
105
+
106
+ cat > org.example.oldstable.yml <<EOF
107
+ id: org.example.oldstable
108
+ runtime: org.freedesktop.Platform
109
+ runtime-version: '$RUNTIME_VERSION'
110
+ sdk: org.freedesktop.Sdk
111
+ modules:
112
+ - $f
113
+ EOF
114
+
115
+ cat org.example.oldstable.yml
116
+ dbus-run-session flatpak run org.flatpak.Builder --verbose --user --force-clean \
117
+ --install-deps-from=flathub builddir org.example.oldstable.yml
118
+ fi
119
+ done
120
+
@@ -0,0 +1,28 @@
1
+ name: Check for updates
2
+ on:
3
+ schedule:
4
+ - cron: "0 0 1,21 * *"
5
+ workflow_dispatch:
6
+
7
+ jobs:
8
+ flatpak-external-data-checker:
9
+ runs-on: ubuntu-latest
10
+ strategy:
11
+ matrix:
12
+ branch: [ master ]
13
+ steps:
14
+ # 4.2.2
15
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
16
+ with:
17
+ ref: ${{ matrix.branch }}
18
+
19
+ - uses: docker://ghcr.io/flathub-infra/flatpak-external-data-checker:latest@sha256:9e64f59dc8b92b4e7cf325a3f2ef98a64beaf721b58803801d3bf66269203221
20
+ env:
21
+ GIT_AUTHOR_NAME: flathubbot
22
+ GIT_COMMITTER_NAME: flathubbot
23
+ GIT_AUTHOR_EMAIL: sysadmin@flathub.org
24
+ GIT_COMMITTER_EMAIL: sysadmin@flathub.org
25
+ EMAIL: sysadmin@flathub.org
26
+ GITHUB_TOKEN: ${{ secrets.FLATHUBBOT_TOKEN }}
27
+ with:
28
+ entrypoint: ./update-checker.sh
@@ -0,0 +1,23 @@
1
+ # Fallback on Flathub admins for unowned shared modules
2
+ * @flathub/reviewers
3
+
4
+ update-checker.sh @flathub/reviewers
5
+ .github/ @flathub/reviewers
6
+
7
+ /dbus-glib/ @TingPing
8
+ /clutter/ @A6GibKm
9
+ /gtk2/ @TingPing
10
+ /intltool/ @TingPing
11
+ /libappindicator/ @TingPing
12
+ /libcanberra/ @hadess
13
+ /libusb/ @A6GibKm
14
+ /physfs/ @Mailaender
15
+ /python2.7/ @bilelmoussaoui
16
+ /linux-audio/ @hfiguiere
17
+ /libsoup/ @hfiguiere
18
+ /mac/ @enzo1982
19
+ /luajit/ @ranisalt
20
+ /lzo/ @AKoskovich
21
+ /squashfs-tools/ @AKoskovich
22
+ /libayatana-appindicator/ @AKoskovich
23
+ /SDL2/ @tothxa
@@ -0,0 +1,79 @@
1
+ ## Flathub shared modules
2
+
3
+ This repository contains Flatpak build recipes of commonly shared
4
+ modules and is intended to be used as a git submodule. Each submodule
5
+ may include additional instructions to be used properly. Please check
6
+ the folder containing that module to see if anything extra needs to be
7
+ done.
8
+
9
+ ### Adding
10
+
11
+ To use shared modules for packaging an application, add the submodule:
12
+
13
+ ```sh
14
+ git submodule add https://github.com/flathub/shared-modules.git
15
+ ```
16
+
17
+ ### Usage
18
+
19
+ Then modules from this repository can be specified in an application
20
+ manifest.
21
+
22
+ ```json
23
+ "modules": [
24
+ "shared-modules/SDL/SDL-1.2.15.json",
25
+ ]
26
+ ```
27
+ And for a YAML manifest:
28
+
29
+ ```yaml
30
+ modules:
31
+ - shared-modules/SDL/SDL-1.2.15.json
32
+ ```
33
+
34
+ ### Updating
35
+
36
+ To update the submodule:
37
+
38
+ ```sh
39
+ git submodule update --remote --merge
40
+ ```
41
+
42
+ To automate updates, [dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
43
+ can be used but please limit the update frequency to not more than once
44
+ or twice a week.
45
+
46
+ ### Removing
47
+
48
+ To remove the submodule:
49
+
50
+ ```sh
51
+ git submodule deinit -f -- shared-modules
52
+ rm -rf .git/modules/shared-modules
53
+ git rm -f shared-modules
54
+ rm .gitmodules
55
+ ```
56
+
57
+ ### External data checker
58
+
59
+ We provide an automatic updating mechanism for submodules located here.
60
+ In order to utilize it [set up x-checker-data](https://github.com/flathub/flatpak-external-data-checker)
61
+ for your sources and they will be checked for updates in a weekly basis.
62
+
63
+ ### Inclusion criteria
64
+
65
+ - The module must be widely used on [Flathub](https://github.com/flathub)
66
+ by actively maintained applications.
67
+
68
+ - The module must not be provided by any current branch of the runtimes.
69
+
70
+ - The module manifest must be in JSON format.
71
+
72
+ - The manifest must be buildable with the latest stable
73
+ and oldstable versions of the Freedesktop SDK runtime.
74
+
75
+ ### Inclusion process
76
+
77
+ Please open a [pull request](https://github.com/flathub/shared-modules/pulls)
78
+ with the module manifest and add yourself as a [codeowner](https://github.com/flathub/shared-modules/blob/master/CODEOWNERS)
79
+ of that module.
@@ -0,0 +1,3 @@
1
+ This submodule contains the manifests and several patches for SDL1 and its compatibility layer.
2
+
3
+ If using the compatibility layer, please add the SDL2 submodule as a dependency as well to benefit from the latest bug fixes.
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "SDL1",
3
+ "rm-configure": true,
4
+ "config-opts": ["--disable-static"],
5
+ "build-options":{
6
+ "cflags": "-Wno-incompatible-pointer-types"
7
+ },
8
+ "cleanup": [
9
+ "/bin",
10
+ "/share/man",
11
+ "/share/aclocal",
12
+ "/include",
13
+ "/lib/pkgconfig",
14
+ "/lib/*.la",
15
+ "/lib/*.a"
16
+ ],
17
+ "sources": [
18
+ {
19
+ "type": "archive",
20
+ "url": "https://www.libsdl.org/release/SDL-1.2.15.tar.gz",
21
+ "sha256": "d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00"
22
+ },
23
+ {
24
+ "type": "patch",
25
+ "path": "sdl-libx11-build.patch"
26
+ },
27
+ {
28
+ "type": "patch",
29
+ "path": "sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch"
30
+ },
31
+ {
32
+ "type": "patch",
33
+ "path": "sdl-sysloadso-buffer-length.patch"
34
+ },
35
+ {
36
+ "type": "patch",
37
+ "path": "libsdl-1.2.15-strict-prototypes.patch"
38
+ },
39
+ {
40
+ "type": "script",
41
+ "dest-filename": "autogen.sh",
42
+ "commands": [
43
+ "sed -i -e 's/.*AM_PATH_ESD.*//' configure.in",
44
+ "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts",
45
+ "aclocal",
46
+ "libtoolize",
47
+ "autoconf"
48
+ ]
49
+ }
50
+ ]
51
+ }
@@ -0,0 +1,118 @@
1
+ diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.c SDL_Pango-0.1.2/src/SDL_Pango.c
2
+ --- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2004-12-10 10:06:33.000000000 +0100
3
+ +++ SDL_Pango-0.1.2/src/SDL_Pango.c 2006-09-29 17:42:09.000000000 +0200
4
+ @@ -723,13 +723,8 @@ SDLPango_CopyFTBitmapToSurface(
5
+ SDL_UnlockSurface(surface);
6
+ }
7
+
8
+ -/*!
9
+ - Create a context which contains Pango objects.
10
+ -
11
+ - @return A pointer to the context as a SDLPango_Context*.
12
+ -*/
13
+ SDLPango_Context*
14
+ -SDLPango_CreateContext()
15
+ +SDLPango_CreateContext_GivenFontDesc(const char* font_desc)
16
+ {
17
+ SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context));
18
+ G_CONST_RETURN char *charset;
19
+ @@ -743,8 +738,7 @@ SDLPango_CreateContext()
20
+ pango_context_set_language (context->context, pango_language_from_string (charset));
21
+ pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR);
22
+
23
+ - context->font_desc = pango_font_description_from_string(
24
+ - MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
25
+ + context->font_desc = pango_font_description_from_string(font_desc);
26
+
27
+ context->layout = pango_layout_new (context->context);
28
+
29
+ @@ -762,6 +756,17 @@ SDLPango_CreateContext()
30
+ }
31
+
32
+ /*!
33
+ + Create a context which contains Pango objects.
34
+ +
35
+ + @return A pointer to the context as a SDLPango_Context*.
36
+ +*/
37
+ +SDLPango_Context*
38
+ +SDLPango_CreateContext()
39
+ +{
40
+ + SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
41
+ +}
42
+ +
43
+ +/*!
44
+ Free a context.
45
+
46
+ @param *context [i/o] Context to be free
47
+ @@ -1053,6 +1058,20 @@ SDLPango_SetMarkup(
48
+ pango_layout_set_font_description (context->layout, context->font_desc);
49
+ }
50
+
51
+ +void
52
+ +SDLPango_SetText_GivenAlignment(
53
+ + SDLPango_Context *context,
54
+ + const char *text,
55
+ + int length,
56
+ + SDLPango_Alignment alignment)
57
+ +{
58
+ + pango_layout_set_attributes(context->layout, NULL);
59
+ + pango_layout_set_text (context->layout, text, length);
60
+ + pango_layout_set_auto_dir (context->layout, TRUE);
61
+ + pango_layout_set_alignment (context->layout, alignment);
62
+ + pango_layout_set_font_description (context->layout, context->font_desc);
63
+ +}
64
+ +
65
+ /*!
66
+ Set plain text to context.
67
+ Text must be utf-8.
68
+ @@ -1067,11 +1086,7 @@ SDLPango_SetText(
69
+ const char *text,
70
+ int length)
71
+ {
72
+ - pango_layout_set_attributes(context->layout, NULL);
73
+ - pango_layout_set_text (context->layout, text, length);
74
+ - pango_layout_set_auto_dir (context->layout, TRUE);
75
+ - pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT);
76
+ - pango_layout_set_font_description (context->layout, context->font_desc);
77
+ + SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT);
78
+ }
79
+
80
+ /*!
81
+ diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.h SDL_Pango-0.1.2/src/SDL_Pango.h
82
+ --- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2004-12-10 10:06:33.000000000 +0100
83
+ +++ SDL_Pango-0.1.2/src/SDL_Pango.h 2006-09-29 17:42:09.000000000 +0200
84
+ @@ -109,12 +109,20 @@ typedef enum {
85
+ SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */
86
+ } SDLPango_Direction;
87
+
88
+ -
89
+ +/*!
90
+ + Specifies alignment of text. See Pango reference for detail
91
+ +*/
92
+ +typedef enum {
93
+ + SDLPANGO_ALIGN_LEFT,
94
+ + SDLPANGO_ALIGN_CENTER,
95
+ + SDLPANGO_ALIGN_RIGHT
96
+ +} SDLPango_Alignment;
97
+
98
+ extern DECLSPEC int SDLCALL SDLPango_Init();
99
+
100
+ extern DECLSPEC int SDLCALL SDLPango_WasInit();
101
+
102
+ +extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc);
103
+ extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext();
104
+
105
+ extern DECLSPEC void SDLCALL SDLPango_FreeContext(
106
+ @@ -157,6 +165,12 @@ extern DECLSPEC void SDLCALL SDLPango_Se
107
+ const char *markup,
108
+ int length);
109
+
110
+ +extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment(
111
+ + SDLPango_Context *context,
112
+ + const char *text,
113
+ + int length,
114
+ + SDLPango_Alignment alignment);
115
+ +
116
+ extern DECLSPEC void SDLCALL SDLPango_SetText(
117
+ SDLPango_Context *context,
118
+ const char *markup,
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "SDL_image",
3
+ "config-opts": ["--disable-static"],
4
+ "rm-configure": true,
5
+ "cleanup": [
6
+ "/include",
7
+ "/lib/pkgconfig",
8
+ "*.la",
9
+ "*.a"
10
+ ],
11
+ "sources": [
12
+ {
13
+ "type": "archive",
14
+ "url": "https://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz",
15
+ "sha256": "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699"
16
+ },
17
+ {
18
+ "type": "script",
19
+ "dest-filename": "autogen.sh",
20
+ "commands": [
21
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi"
22
+ ]
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "SDL_mixer",
3
+ "config-opts": ["--disable-static"],
4
+ "cleanup": [
5
+ "/include",
6
+ "/lib/pkgconfig",
7
+ "/lib/*.la"
8
+ ],
9
+ "rm-configure": true,
10
+ "sources": [
11
+ {
12
+ "type": "archive",
13
+ "url": "https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz",
14
+ "sha256": "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a"
15
+ },
16
+ {
17
+ "type": "script",
18
+ "dest-filename": "autogen.sh",
19
+ "commands": [
20
+ "rm acinclude/libtool.m4",
21
+ "rm acinclude/lt*",
22
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi -I acinclude",
23
+ "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts"
24
+ ]
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "SDL_net",
3
+ "config-opts": ["--disable-static"],
4
+ "rm-configure": true,
5
+ "sources": [
6
+ {
7
+ "type": "archive",
8
+ "url": "https://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz",
9
+ "sha256": "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4"
10
+ },
11
+ {
12
+ "type": "script",
13
+ "dest-filename": "autogen.sh",
14
+ "commands": [
15
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "SDL_pango",
3
+ "config-opts": ["--disable-static"],
4
+ "rm-configure": true,
5
+ "build-options":{
6
+ "cflags": "-Wno-implicit-function-declaration"
7
+ },
8
+ "sources": [
9
+ {
10
+ "type": "archive",
11
+ "url": "https://downloads.sourceforge.net/project/sdlpango/SDL_Pango/0.1.2/SDL_Pango-0.1.2.tar.gz",
12
+ "sha256": "7f75d3b97acf707c696ea126424906204ebfa07660162de925173cdd0257eba4"
13
+ },
14
+ {
15
+ "type": "patch",
16
+ "path": "SDL_Pango-0.1.2-API-adds.patch"
17
+ },
18
+ {
19
+ "type": "script",
20
+ "dest-filename": "autogen.sh",
21
+ "commands": [
22
+ "autoreconf -vfi"
23
+ ]
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "SDL_ttf",
3
+ "config-opts": ["--disable-static"],
4
+ "rm-configure": true,
5
+ "config-opts": [
6
+ "ac_cv_path_FREETYPE_CONFIG=pkg-config freetype2"
7
+ ],
8
+ "cleanup": [
9
+ "/include",
10
+ "/lib/pkgconfig",
11
+ "*.la",
12
+ "*.a"
13
+ ],
14
+ "sources": [
15
+ {
16
+ "type": "archive",
17
+ "url": "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz",
18
+ "sha256": "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7"
19
+ },
20
+ {
21
+ "type": "script",
22
+ "dest-filename": "autogen.sh",
23
+ "commands": [
24
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi"
25
+ ]
26
+ }
27
+ ]
28
+ }