Skip to content

Commit 4909580

Browse files
committed
build: appstream
1 parent cbd9b70 commit 4909580

File tree

4 files changed

+131
-6
lines changed

4 files changed

+131
-6
lines changed
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
[Desktop Entry]
22
Name=SourceGit
33
Comment=Open-source & Free Git GUI Client
4-
Exec=/opt/sourcegit/sourcegit
5-
Icon=/usr/share/icons/sourcegit.png
4+
GenericName=SourceGit
5+
Exec=/opt/sourcegit/sourcegit %f
6+
Icon=com.sourcegit_scm.SourceGit
7+
StartupNotify=true
68
Terminal=false
79
Type=Application
8-
Categories=Development
10+
Categories=Development;RevisionControl;
911
MimeType=inode/directory;
12+
Keywords=git;version control;scm;repository;commit;branch;source;

build/resources/appimage/sourcegit.appdata.xml

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,79 @@
66
<name>SourceGit</name>
77
<summary>Open-source GUI client for git users</summary>
88
<description>
9-
<p>Open-source GUI client for git users</p>
9+
<p>
10+
SourceGit is a free, open-source Git GUI client that provides a visual interface for managing Git repositories.
11+
It supports all major Git operations and features a modern, intuitive interface.
12+
</p>
13+
<p>Key features include:</p>
14+
<ul>
15+
<li>Cross-platform support (Windows, macOS, Linux)</li>
16+
<li>Visual commit graph and branch visualization</li>
17+
<li>Support for SSH access with multiple remotes</li>
18+
<li>Git operations: Clone, Fetch, Pull, Push, Merge, Rebase, etc.</li>
19+
<li>Interactive rebase support</li>
20+
<li>Branch, tag, and stash management</li>
21+
<li>Submodule and worktree support</li>
22+
<li>File history and blame views</li>
23+
<li>Image diff comparison (Side-by-side, Swipe, Blend)</li>
24+
<li>Git LFS support</li>
25+
<li>GitFlow workflow support</li>
26+
<li>Built-in light and dark themes with customization</li>
27+
<li>Multi-language support</li>
28+
<li>AI-powered commit message generation</li>
29+
</ul>
1030
</description>
11-
<url type="homepage">https://github.com/sourcegit-scm/sourcegit</url>
31+
32+
<screenshots>
33+
<screenshot type="default">
34+
<caption>SourceGit with dark theme</caption>
35+
</screenshot>
36+
<screenshot>
37+
<caption>SourceGit with light theme</caption>
38+
</screenshot>
39+
</screenshots>
40+
41+
<url type="homepage">https://github.com/sourcegit-scm/sourcegit</url>
42+
<url type="bugtracker">https://github.com/sourcegit-scm/sourcegit/issues</url>
43+
<url type="help">https://github.com/sourcegit-scm/sourcegit/blob/develop/README.md</url>
44+
<url type="vcs-browser">https://github.com/sourcegit-scm/sourcegit</url>
45+
<url type="contribute">https://github.com/sourcegit-scm/sourcegit/blob/develop/README.md#contributing</url>
46+
1247
<launchable type="desktop-id">com.sourcegit_scm.SourceGit.desktop</launchable>
48+
1349
<provides>
14-
<id>com.sourcegit_scm.SourceGit.desktop</id>
50+
<binary>sourcegit</binary>
1551
</provides>
52+
53+
<categories>
54+
<category>Development</category>
55+
<category>RevisionControl</category>
56+
</categories>
57+
58+
<keywords>
59+
<keyword>git</keyword>
60+
<keyword>version control</keyword>
61+
<keyword>scm</keyword>
62+
<keyword>repository</keyword>
63+
<keyword>commit</keyword>
64+
<keyword>branch</keyword>
65+
<keyword>source</keyword>
66+
</keywords>
67+
68+
<content_rating type="oars-1.1" />
69+
70+
<supports>
71+
<control>pointing</control>
72+
<control>keyboard</control>
73+
</supports>
74+
75+
<requires>
76+
<display_length compare="ge">768</display_length>
77+
</requires>
78+
79+
<recommends>
80+
<memory>512</memory>
81+
</recommends>
82+
83+
<developer_name>sourcegit-scm</developer_name>
1684
</component>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env bash
2+
3+
# AppStream metadata generation and validation script for SourceGit
4+
# This script generates proper AppStream metadata for Debian packaging
5+
6+
set -e
7+
8+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9+
BUILD_DIR="$(dirname "$SCRIPT_DIR")"
10+
ROOT_DIR="$(dirname "$BUILD_DIR")"
11+
12+
VERSION=$(cat "$ROOT_DIR/VERSION")
13+
APPDATA_FILE="$BUILD_DIR/resources/appimage/sourcegit.appdata.xml"
14+
DEB_APPDATA_DIR="$BUILD_DIR/resources/deb/usr/share/metainfo"
15+
DEB_APPDATA_FILE="$DEB_APPDATA_DIR/com.sourcegit_scm.SourceGit.appdata.xml"
16+
17+
echo "Generating AppStream metadata for SourceGit v$VERSION"
18+
19+
# Create directory if it doesn't exist
20+
mkdir -p "$DEB_APPDATA_DIR"
21+
22+
# Update version in AppStream files if VERSION file changed
23+
if [[ -f "$APPDATA_FILE" ]]; then
24+
# Update release version with current date
25+
CURRENT_DATE=$(date +%Y-%m-%d)
26+
27+
# Use sed to update the version and date in the release section
28+
sed -i "s/<release version=\"[^\"]*\" date=\"[^\"]*\">/<release version=\"$VERSION\" date=\"$CURRENT_DATE\">/" "$APPDATA_FILE"
29+
30+
echo "Updated AppStream metadata with version $VERSION and date $CURRENT_DATE"
31+
32+
# Copy to deb directory
33+
cp "$APPDATA_FILE" "$DEB_APPDATA_FILE"
34+
echo "Copied AppStream metadata to deb package directory"
35+
fi
36+
37+
# Validate AppStream metadata if appstream-util is available
38+
if command -v appstream-util >/dev/null 2>&1; then
39+
echo "Validating AppStream metadata..."
40+
if appstream-util validate "$APPDATA_FILE"; then
41+
echo "✓ AppStream metadata validation passed"
42+
else
43+
echo "⚠ AppStream metadata validation failed"
44+
exit 1
45+
fi
46+
else
47+
echo "Note: appstream-util not found, skipping validation"
48+
echo "To install on Debian/Ubuntu: sudo apt install appstream-util"
49+
fi
50+
51+
echo "AppStream metadata generation completed successfully"

build/scripts/package.linux.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,13 @@ mkdir -p resources/deb/opt/sourcegit/
5252
mkdir -p resources/deb/usr/bin
5353
mkdir -p resources/deb/usr/share/applications
5454
mkdir -p resources/deb/usr/share/icons
55+
mkdir -p resources/deb/usr/share/metainfo
5556
cp -f SourceGit/* resources/deb/opt/sourcegit
5657
ln -rsf resources/deb/opt/sourcegit/sourcegit resources/deb/usr/bin
5758
cp -r resources/_common/applications resources/deb/usr/share
5859
cp -r resources/_common/icons resources/deb/usr/share
60+
# Copy AppStream metadata
61+
cp resources/appimage/sourcegit.appdata.xml resources/deb/usr/share/metainfo/com.sourcegit_scm.SourceGit.appdata.xml
5962
# Calculate installed size in KB
6063
installed_size=$(du -sk resources/deb | cut -f1)
6164
# Update the control file

0 commit comments

Comments
 (0)