No description
  • C++ 88.8%
  • QML 6.8%
  • CMake 1.8%
  • Makefile 1.7%
  • C 0.5%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Justin a4f9ec4e6f
All checks were successful
Build and Verify / build (push) Successful in 52s
Build and Verify / release (push) Successful in 36s
Merge pull request 'fix: implement robust eix parser and fast updates detection' (#14) from release-1.1.14 into main
Reviewed-on: #14
2026-08-10 16:07:40 -04:00
.forgejo/workflows ci: automate release tagging on push to main 2026-08-06 12:10:17 -04:00
include fix(headers): update libdiscover headers from host's discover-6.6.6 to match layout 2026-08-06 16:24:03 -04:00
src fix(updates): implement robust eix parser and fast updates detection 2026-08-10 16:07:39 -04:00
.gitignore build: integrate custom suse-qt611-discover container and fix CMake detection 2026-08-06 10:22:45 -04:00
discover-portage-backend-1.1.0.ebuild fix(ebuild): correct CMake dependency category to dev-build 2026-08-04 12:20:16 -04:00
discover-portage.patch check in Cursor code 2026-06-03 23:05:07 -04:00
ebuild-patch-example.ebuild check in Cursor code 2026-06-03 23:05:07 -04:00
EBUILD_SETUP.md check in Cursor code 2026-06-03 23:05:07 -04:00
Makefile fix(backend): simplify search to be synchronous, and fix Makefile VERSION syntax 2026-08-06 14:31:01 -04:00
Manifest chore: bump version to 1.1.0 2026-08-04 12:08:38 -04:00
metadata.xml check in Cursor code 2026-06-03 23:05:07 -04:00
PORTAGE_INTEGRATION.md check in Cursor code 2026-06-03 23:05:07 -04:00
README.md feat(config): add binary package installation preference to make.conf editor 2026-08-04 11:30:11 -04:00
README_PORTAGE.md check in Cursor code 2026-06-03 23:05:07 -04:00

Portage Backend for KDE Discover

A native Portage package manager backend for KDE Discover on Gentoo Linux systems.

Overview

This project provides full Portage integration into KDE Discover, allowing Gentoo users to manage their system packages through the familiar Discover graphical interface instead of command-line tools like emerge.

Features

Implemented

  • Package Browsing: View all available packages from Gentoo repositories
  • Installed Packages: Display all currently installed packages with version information
  • Package Search: Search packages by name or category
  • Category Navigation: Browse packages organized by Portage categories (net-im, dev-util, etc.)

Building and Installation

Quick Start

# Clone with submodules
git clone --recursive https://github.com/keklick1337/discover-portage-backend.git
cd discover-portage-backend

make build

# Install
make install

# Restart Discover
sudo killall plasma-discover
# Restart helper (if old version is runned)
sudo killall portage_backend_helper

plasma-discover

TODO

High Priority

  • Message box with error details on fail
  • Implement portage backend service with KAuth
  • Implement actual package installation
  • Implement package removal
  • Implement version selecting for install
  • Add update check functionality
  • Implement package updates
  • QML injector to top bar

USE Flags

  • Read USE flags from installed packages
  • Display available USE flags for installed package
  • Display available USE flags any package (portageq answer parsing)
  • Read configured USE flags from /etc/portage/package.use/
  • Display message when USE flags was changed
  • Write USE flag changes
  • USE flag description tooltips
  • Interactive USE flag editor UI
  • Validate USE flag conflicts

Package Information

  • Basic package metadata
  • Package dependencies display
  • Reverse dependencies
  • Package file list

Advanced Features

  • Package masking
  • Package unmasking
  • Message for approve licenses during installation
  • License acceptance management in package.license
  • Tasks lists and task monitoring
  • Package search by description
  • World file integration
  • News reader (Gentoo news items)
  • Sync repository functionality

Overlays Management

  • Display installed overlays (backend: listing enabled overlays implemented)
  • Refresh package list from overlays (backend: official overlays index fetch implemented)
  • Add new overlays
  • Remove overlays
  • Overlay metadata display
  • Search packages across overlays

Configuration

  • Visual make.conf editor
  • Edit global USE flags in make.conf
  • Configure ACCEPT_KEYWORDS
  • Configure ACCEPT_LICENSE
  • Set MAKEOPTS and parallel builds
  • Binary packages support (FEATURES="getbinpkg")
  • Binary package installation preference
  • Configure GENTOO_MIRRORS

Bugs

  • Application version may not load when opening package details
  • When bulk deleting packages in the Discover interface, they are shown as deleted, but in fact they are not
  • On portage sources need to delete 'Add source' button

Contributing

Contributions are welcome! This project is open for community contributions.

How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Areas Needing Help

  • Testing on different Gentoo configurations
  • UI/UX improvements
  • Performance optimization
  • Documentation
  • Translation support
  • TODO list

Development Guidelines

  • Follow existing code style
  • Add comments for complex logic
  • Test on a real Gentoo system before submitting
  • Update README if adding new features

Note: This is community-maintained software. Package install, removal, and updates use emerge via KAuth (polkit). Test on non-production systems first; long emerge runs and edge cases (masking, licenses, slot conflicts) may still need manual intervention.