Add Custom PKGBUILD Repositories Support - #2681
Open
skorotkiewicz wants to merge 8 commits into
Open
Conversation
…ting, and updating repositories - Introduced new command-line options for managing custom repositories: `--repo-add`, `--repo-remove`, `--repo-list`, and `--repo-update`. - Implemented functions to handle these commands, including validation and configuration saving. - Updated dependency graph handling to incorporate packages from custom repositories. - Enhanced search functionality to include results from custom repositories. - Updated configuration structure to support custom repository settings.
…BUILD support - Updated command-line options for managing custom repositories, including `--repo-add`, `--repo-remove`, `--repo-list`, and `--repo-update`. - Implemented early command handling for custom repository operations before runtime initialization. - Added functionality to download and manage `.SRCINFO` files alongside `PKGBUILD`. - Enhanced package search and installation processes to support custom repositories. - Improved error handling and logging for repository operations.
- Added functionality to update custom repositories before refreshing pacman databases. - Integrated error handling for cache directory retrieval and repository updates. - Enhanced logging to inform users of the update status of custom repositories.
…ogger parameter - Updated test cases in cmd_test.go and query_test.go to pass `nil` for the logger parameter in the QueryBuilder initialization. - This change simplifies the test setup and aligns with the updated QueryBuilder constructor signature.
… logger parameter in the SourceQueryBuilder initialization, aligning with recent changes in the constructor signature.
- Added parsing for repository-specific search targets, including AUR and custom repositories. - Implemented logic to categorize targets into AUR, known repositories, and general targets. - Updated search logic to handle package names correctly when querying repositories. - Improved logging for better traceability during target processing.
|
Hi does this work with https://github.com/archlinux/aur.git like this post describes? https://archlinux.org/news/recent-services-outages/ |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements comprehensive support for custom PKGBUILD repositories in yay, allowing users to configure and manage private, organization-specific, or local package collections that integrate seamlessly with yay's existing search and installation workflows.
Features Added
🏗️ Core Infrastructure
~/.config/yay/config.jsonwithcustomReposarray🔍 Search Integration
repo/packagesyntax (e.g.,yay -Ss aur/mama,yay -Ss core/linux)📦 Installation Workflow
⚙️ CLI Management
--repo-add=name,type,url/path- Add custom repository--repo-remove=name- Remove custom repository--repo-list- List all configured repositories--repo-update- Update all custom repositories🔧 Configuration & Migration
Repository Types Supported
📁 Local Repositories
{ "name": "local-packages", "type": "local", "path": "/path/to/pkgbuilds", "searchable": true, "priority": 1 }🌐 Git Repositories
{ "name": "github-test", "type": "git", "url": "https://github.com/skorotkiewicz/test-repo", "branch": "main", "searchable": true, "priority": 2, "auth": { "type": "token", "token": "ghp_..." } }🌍 HTTP Repositories
{ "name": "http-repo", "type": "http", "url": "https://example.com/pkgs/", "searchable": true, "priority": 3 }Usage Examples
Search Commands
Repository Management
Installation
Technical Implementation
Key Files Added/Modified
pkg/customrepo/- Complete custom repository packagepkg/settings/config.go- Extended configuration structurepkg/query/query_builder.go- Search integrationpkg/dep/dep_graph.go- Dependency resolutionpkg/sync/workdir/preparer.go- Build process integrationmain.go- CLI command handlingArchitecture Highlights
Testing
Backward Compatibility
Security Considerations
Documentation
Future Enhancements