No description
- C++ 88.8%
- QML 6.8%
- CMake 1.8%
- Makefile 1.7%
- C 0.5%
- Other 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| include | ||
| src | ||
| .gitignore | ||
| discover-portage-backend-1.1.0.ebuild | ||
| discover-portage.patch | ||
| ebuild-patch-example.ebuild | ||
| EBUILD_SETUP.md | ||
| Makefile | ||
| Manifest | ||
| metadata.xml | ||
| PORTAGE_INTEGRATION.md | ||
| README.md | ||
| README_PORTAGE.md | ||
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
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- 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.