mirror of
https://github.com/Jguer/yay.git
synced 2025-10-04 00:03:11 -04:00
cleanup
This commit is contained in:
parent
529d21c71d
commit
980497c25f
183
TODO.md
183
TODO.md
@ -1,183 +0,0 @@
|
||||
# Feature Request: Support for Custom PKGBUILD Repositories
|
||||
|
||||
## Summary
|
||||
Add support for configuring custom PKGBUILD repositories alongside AUR, allowing users to maintain private or organization-specific package collections that integrate seamlessly with yay's search and installation workflow.
|
||||
|
||||
## Motivation
|
||||
Currently, yay is tightly coupled to the official AUR infrastructure. While this ensures consistency and security, it limits flexibility for users who want to:
|
||||
|
||||
- Maintain private PKGBUILD collections for proprietary software
|
||||
- Create organization-specific package repositories
|
||||
- Host custom packages that don't belong in the public AUR
|
||||
- Develop and test packages locally before submitting to AUR
|
||||
- Mirror or fork AUR packages with custom modifications
|
||||
|
||||
Users currently work around this limitation by:
|
||||
- Creating wrapper scripts around yay
|
||||
- Manually managing separate PKGBUILD directories
|
||||
- Using complex build systems that bypass yay entirely
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### Configuration Format
|
||||
Extend `~/.config/yay/config.json` to support custom repositories:
|
||||
|
||||
```json
|
||||
{
|
||||
"customRepos": [
|
||||
{
|
||||
"name": "company-internal",
|
||||
"type": "git",
|
||||
"url": "https://git.company.com/pkgbuilds",
|
||||
"searchable": true,
|
||||
"priority": 1
|
||||
},
|
||||
{
|
||||
"name": "local-dev",
|
||||
"type": "local",
|
||||
"path": "/home/user/dev/pkgbuilds",
|
||||
"searchable": true,
|
||||
"priority": 2
|
||||
},
|
||||
{
|
||||
"name": "mirror-aur",
|
||||
"type": "http",
|
||||
"url": "https://my-server.com/aur-mirror",
|
||||
"searchable": false,
|
||||
"priority": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Repository Types
|
||||
|
||||
**Local repositories (`type: "local"`):**
|
||||
- Point to local filesystem paths
|
||||
- Expected structure: `repo-root/package-name/PKGBUILD`
|
||||
- Immediate availability, no network dependency
|
||||
|
||||
**Git repositories (`type: "git"`):**
|
||||
- Clone/update git repositories containing PKGBUILDs
|
||||
- Support for authentication (SSH keys, tokens)
|
||||
- Cached locally for offline access
|
||||
|
||||
**HTTP repositories (`type: "http"`):**
|
||||
- Simple HTTP-served directory structures
|
||||
- Lightweight alternative to full AUR infrastructure
|
||||
- Compatible with static file hosting (nginx, Apache, GitHub Pages)
|
||||
|
||||
### Expected Repository Structure
|
||||
```
|
||||
repository-root/
|
||||
├── package-a/
|
||||
│ ├── PKGBUILD
|
||||
│ ├── .SRCINFO
|
||||
│ └── [additional files]
|
||||
├── package-b/
|
||||
│ ├── PKGBUILD
|
||||
│ ├── .SRCINFO
|
||||
│ └── [patches, sources, etc.]
|
||||
└── [optional] packages.json # metadata for faster searching
|
||||
```
|
||||
|
||||
### Integration with Existing Commands
|
||||
|
||||
**Search (`yay -Ss <query>`):**
|
||||
- Include results from configured custom repositories
|
||||
- Clearly indicate source repository in output
|
||||
- Respect priority ordering
|
||||
|
||||
**Install (`yay -S <package>`):**
|
||||
- Check custom repositories before falling back to AUR
|
||||
- Support repository-specific installation: `yay -S repo/package`
|
||||
|
||||
**Information (`yay -Si <package>`):**
|
||||
- Display repository source and metadata
|
||||
- Show if package exists in multiple repositories
|
||||
|
||||
### Security Considerations
|
||||
- Add configuration option to restrict custom repositories to trusted sources
|
||||
- Warn users when installing from non-AUR sources
|
||||
- Implement signature verification for HTTP repositories
|
||||
- Sandboxed builds by default (existing yay behavior)
|
||||
|
||||
## Example Use Cases
|
||||
|
||||
1. **Company Development:**
|
||||
```bash
|
||||
# Search includes both AUR and company packages
|
||||
yay -Ss company-tool
|
||||
|
||||
# Install from specific repository
|
||||
yay -S company-internal/proprietary-software
|
||||
```
|
||||
|
||||
2. **Local Development:**
|
||||
```bash
|
||||
# Test local PKGBUILD before AUR submission
|
||||
yay -S local-dev/my-new-package
|
||||
```
|
||||
|
||||
3. **Custom AUR Mirror:**
|
||||
```bash
|
||||
# Use organization's AUR mirror with modifications
|
||||
yay -Ss modified-package
|
||||
```
|
||||
|
||||
## Implementation Considerations
|
||||
|
||||
### Backward Compatibility
|
||||
- Default behavior unchanged when no custom repositories configured
|
||||
- Existing configuration files remain valid
|
||||
- AUR remains the primary source unless explicitly overridden
|
||||
|
||||
### Performance
|
||||
- Cache repository metadata locally
|
||||
- Implement incremental updates for git repositories
|
||||
- Parallel searching across repositories
|
||||
|
||||
### User Experience
|
||||
- Clear indication of package sources in output
|
||||
- Intuitive error messages for repository access issues
|
||||
- Optional repository management commands (`yay --repo-add`, `yay --repo-list`)
|
||||
|
||||
## Alternative Approaches Considered
|
||||
|
||||
1. **Wrapper Scripts:** Users currently implement this functionality externally, but it requires maintaining separate tooling
|
||||
2. **Fork yay:** Creates fragmentation and maintenance burden
|
||||
3. **Different AUR Helper:** Switching tools loses yay's established feature set and community
|
||||
|
||||
## Related Issues
|
||||
- Users frequently request support for private/custom package sources
|
||||
- Organizations need better package management for internal tools
|
||||
- Developers want smoother workflows for package development
|
||||
|
||||
## Benefits
|
||||
- Maintains yay's unified interface while adding flexibility
|
||||
- Enables enterprise and development use cases
|
||||
- Strengthens Arch Linux ecosystem by supporting diverse packaging needs
|
||||
- Reduces need for complex workarounds and fragmented tooling
|
||||
|
||||
This feature would make yay more versatile while preserving its core strengths and maintaining compatibility with existing workflows.
|
||||
|
||||
|
||||
|
||||
$ yay -Sy
|
||||
:: Synchronizing package databases...
|
||||
core is up to date
|
||||
extra is up to date
|
||||
multilib is up to date
|
||||
:: Updating custom repositories...
|
||||
company-internal: Updating... done
|
||||
local-dev: Updating... done
|
||||
|
||||
{
|
||||
"name": "company-internal",
|
||||
"type": "git",
|
||||
"url": "https://git.company.com/pkgbuilds",
|
||||
"branch": "main", // opcjonalnie
|
||||
"auth": { // opcjonalnie
|
||||
"type": "ssh_key" // albo "token", "basic"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user