Add Phase 5 enhancements: security, i18n, analysis, backup, notifications

- Database v8 migration: tags, pinned, avg_startup_ms columns
- Security scanning with CVE matching and batch scan
- Bundled library extraction and vulnerability reports
- Desktop notification system for security alerts
- Backup/restore system for AppImage configurations
- i18n framework with gettext support
- Runtime analysis and Wayland compatibility detection
- AppStream metadata and Flatpak-style build support
- File watcher module for live directory monitoring
- Preferences panel with GSettings integration
- CLI interface for headless operation
- Detail view: tabbed layout with ViewSwitcher in title bar,
  health score, sandbox controls, changelog links
- Library view: sort dropdown, context menu enhancements
- Dashboard: system status, disk usage, launch history
- Security report page with scan and export
- Packaging: meson build, PKGBUILD, metainfo
This commit is contained in:
lashman
2026-02-27 17:16:41 +02:00
parent a7ed3742fb
commit 423323d5a9
51 changed files with 10583 additions and 481 deletions

View File

@@ -31,5 +31,60 @@
<summary>Color scheme</summary>
<description>Application color scheme: default (follow system), force-light, or force-dark.</description>
</key>
<key name="auto-scan-on-startup" type="b">
<default>false</default>
<summary>Auto scan on startup</summary>
<description>Whether to automatically scan for AppImages when the application starts.</description>
</key>
<key name="detail-tab" type="s">
<default>'overview'</default>
<summary>Last detail view tab</summary>
<description>The last selected tab in the detail view (overview, system, security, storage).</description>
</key>
<key name="auto-check-updates" type="b">
<default>false</default>
<summary>Auto check updates</summary>
<description>Automatically check for AppImage updates periodically.</description>
</key>
<key name="auto-integrate" type="b">
<default>false</default>
<summary>Auto integrate</summary>
<description>Automatically integrate newly discovered AppImages into the desktop menu.</description>
</key>
<key name="auto-backup-before-update" type="b">
<default>false</default>
<summary>Auto backup before update</summary>
<description>Create a config backup before applying an update.</description>
</key>
<key name="backup-retention-days" type="i">
<default>30</default>
<summary>Backup retention days</summary>
<description>Number of days to keep config backups before auto-cleanup.</description>
</key>
<key name="confirm-before-delete" type="b">
<default>true</default>
<summary>Confirm before delete</summary>
<description>Show a confirmation dialog before deleting AppImages or backups.</description>
</key>
<key name="update-cleanup" type="s">
<default>'ask'</default>
<summary>Update cleanup mode</summary>
<description>What to do with old versions after update: ask, keep, or delete.</description>
</key>
<key name="auto-security-scan" type="b">
<default>false</default>
<summary>Auto security scan</summary>
<description>Automatically scan AppImages for security vulnerabilities during scan.</description>
</key>
<key name="security-notifications" type="b">
<default>false</default>
<summary>Security notifications</summary>
<description>Send desktop notifications when new CVEs are found.</description>
</key>
<key name="security-notification-threshold" type="s">
<default>'high'</default>
<summary>Security notification threshold</summary>
<description>Minimum CVE severity for desktop notifications: critical, high, medium, or low.</description>
</key>
</schema>
</schemalist>

View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>app.driftwood.Driftwood</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<name>Driftwood</name>
<summary>Modern AppImage manager for GNOME desktops</summary>
<description>
<p>
Driftwood is a native GTK4/libadwaita application for managing AppImages
on Wayland-era Linux desktops. It discovers, inspects, integrates, updates,
and audits AppImage files with a clean GNOME-native interface.
</p>
<p>Key features:</p>
<ul>
<li>Automatic discovery and scanning of AppImage files</li>
<li>Desktop integration with menu entries and icons</li>
<li>FUSE and Wayland compatibility detection</li>
<li>Update checking via embedded update information</li>
<li>Security scanning against the OSV vulnerability database</li>
<li>Duplicate detection and disk space analysis</li>
<li>Firejail sandboxing support</li>
<li>Orphaned configuration cleanup</li>
</ul>
</description>
<launchable type="desktop-id">app.driftwood.Driftwood.desktop</launchable>
<url type="homepage">https://github.com/driftwood-app/driftwood</url>
<url type="bugtracker">https://github.com/driftwood-app/driftwood/issues</url>
<developer id="app.driftwood">
<name>Driftwood Contributors</name>
</developer>
<branding>
<color type="primary" scheme_preference="light">#8ff0a4</color>
<color type="primary" scheme_preference="dark">#26a269</color>
</branding>
<content_rating type="oars-1.1" />
<requires>
<display_length compare="ge">360</display_length>
</requires>
<recommends>
<control>keyboard</control>
<control>pointing</control>
</recommends>
<categories>
<category>System</category>
<category>PackageManager</category>
<category>GTK</category>
</categories>
<keywords>
<keyword>AppImage</keyword>
<keyword>Application</keyword>
<keyword>Manager</keyword>
<keyword>Package</keyword>
<keyword>FUSE</keyword>
<keyword>Wayland</keyword>
<keyword>Security</keyword>
</keywords>
<releases>
<release version="0.1.0" date="2026-02-26">
<description>
<p>Initial release of Driftwood with core features:</p>
<ul>
<li>AppImage discovery, inspection, and library management</li>
<li>Desktop integration with .desktop files and icons</li>
<li>FUSE and Wayland compatibility analysis</li>
<li>Update checking via GitHub/GitLab/zsync</li>
<li>Security vulnerability scanning via OSV.dev</li>
<li>Duplicate detection and disk footprint analysis</li>
<li>Firejail sandbox support</li>
<li>Orphan cleanup and disk reclamation wizard</li>
<li>CLI interface with scan, list, launch, and inspect commands</li>
</ul>
</description>
</release>
</releases>
</component>