New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to create multiple repositories for cpu specific optimized packages #109
Comments
Having an ability to specify repository name might be good feature for case when you are using it for managing own disto 🤔 However, I didn't really get use case of having same repository with architectures as suffixes. Back in time when arch supported i686, repositories had the same name (as well as in case of other distros - mostly)
oh, sadly at the moment I'm locked with devtools features (as I don't really want yet to write own alternative). IIRC there were some good feature requests to pkgctl which can be adopted later, but so far it is very behind in features than current scripts. Nevertheless, devtools supports separated makepkg.conf's, however, it is impossible to specify their locations. I did some research some time ago https://ahriman.readthedocs.io/en/latest/faq.html#non-x86-64-architecture-setup, see p2 in physical server setup chapter. |
I probably could've worded it better but my idea was to have
Oh I didn't realise that. Thank you for mentioning this. |
I see. Let me check how it can be implemented without significant reworking and/or breaking changes |
changes have been merged into master. But I'm going to test it additionally on my repository first |
Thanks for working on this! However, would it be possible for the web interface to support multiple repositories? Currently using the Docker container and when trying to run the web interface with multiple repos I'm getting: |
let me check how it can be implemented |
sorry bg3 took longer than i probably expected, I'm still working on your case, but so far it is mostly implemented, just need more checks, test coverage, docs update etc |
Thanks for the reply! I've built the docker image from the latest commit on the
If you need more logs I can try to provide some more. If I've messed something up feel free to let me know :-) |
In current implementation there are tabs above, which controls in which repository actions will be run (the only exception is pgp key dialog which is common for any repo). I'm thinking about adding dialog (at least for package addition) to choose in which repositories it has to be run
the --repository options and AHRIMAN_REPOSITORY are redundant for web service atm btw. It scans filesystem to create tree instead
another issue which is not yet addressed is that setup command doesn't work in this case correctly. It generates configuration only for one repository which leads to inability to run actions on different architectures. It will be fixed before merge, however, it is possible to pass own configuration directly for all available repositoriies |
Good to know
Glad to hear it'll be fixed. Excited to see this working. |
I've merged another mr and updated [https://ahriman-demo.arcanis.me/](demo page) accordingly. Also I wrote small example of how-to in docker (the difference is in Basically differences from the original implementation are the following:
So considering example you posted above, the command should be something like
|
Awesome! It appears to be working so far 😄 . One thing I can't seem to figure out is how to add a package to a specific repository via And one more thing (I'm sorry if I'm asking for too much) Would it be possible in the future to somehow build a specific package using a specific |
Instead of automatic package addition now it is required to add package manually after clone. Less magic, plus would allow to use caches for multi-repo setup (see #109)
there was a "feature" which has been fixed in 158d01a, which automatically add packages to repository from local cache. Because cache is shared between repositories (which is mostly correct), it would attempt to add packages in all repositories during the next check
mhm, there are some features which makepkg supports ,but devtools - doesn't. E.g. it is possible to pass settings via environment variables, but devtools only allows whitelisted ones. Also as I've mentioned above, it is impossible too specify config path. Let me check it more closely though, I've tried some naive hacks, but none of them works sadly |
Instead of automatic package addition now it is required to add package manually after clone. Less magic, plus would allow to use caches for multi-repo setup (see #109)
aight, here you go:
and then
PKGEXT is just an example of variable from makepkg, which is quite easy to test. However, in your context it is required to add (optional) repository id for patches. And ma-a-aybe add ability to use "shadow" patches (as in case of pkgrel bump), but it breaks transparency (c) and reproducible builds (tm) |
soo, I've added ability to apply simple patches with package-add command (via Upd: demo site has been updated as well to the latest master commit |
the feature has been also released. I'm closing this issue, feel free to reopen and/or create another one in case of feedback/additional changes required. |
Awesome, Thank you. |
Feature summary
Currently a single Ahriman instance (to my knowledge) only allows you to make a single repository. Not only that it only allows you to specify a build command for different architectures e.g x86-64, i686, ARM, RISC-V, etc. What I'd like to request is the ability to make multiple repositories that specifically use a custom build command and or makepkg.conf to allow building of cpu specific optimized packages e.g x86-64-v3, zen3, skylake.
Cause of the feature request
I have multiple systems running Arch running on various cpus. I currently have my package build system (TeamCities + bash scripts) build optimized packages for these systems (zen3, skylake, sandybridge, x86-64-v2) and push them to multiple repositories (repo-zen3, repo-skylake, repo-sandybridge, repo-x86-64-v2). Ahriman doesn't appear to support this as it can only do one repository and only allows you to specify the architecture (x86, arm, risc-v).
Proposed changes and/or features
Allow multiple repositories each with their own name e.g
[repository:MY-x86-64-REPO]
Move
[build]
settings to inside of[repository:NAME]
Potentially? allow use of a user specified
makepkg.conf
for each repository e.gmakepkg_conf=/path/to/makepkg.conf
The text was updated successfully, but these errors were encountered: