Comments (2)
Arch, Artix and Parabola store the PKGBUILD's for the packages online in various different formats, in git repos which can be queried to checkout any version that is in there, and have to be. Arch changed it's arrangements recently thus breaking Pakku -Sn -Sz for a while. Artix was not previously supported. Parabola was, but I've not yet got round to installing Parabola to test if that even works (although nobody has ever complained either) so that is functioning as it originally was. Arch repo's were originally laid out like Parabola ones but are now more like Artix but not quite.
So you have the original long and convoluted code path to download the right branch of the overall git repo (because the original Arch PKGBUILD's were all in one giant repo) and checkout the correct version. Then overlaid and intertwined with that (which is now routed for Parabola only) it will download and checkout the individual per package git repos that are now used in Arch and Artix.
I tried to put in plenty of comments in the code for the bits I added. It's basically determining what distro is in use, what repo the package is in, and how to get the right PKGBUILD for it at the right version. AUR PKGBUILDS are obtained in a totally different manner again but that is mostly separate so is still pretty much original kitsunyan code barring small changes for Nim version updates.
Also those isArch etc bools are no longer used and I just forgot to delete the declarations, they were used earlier on as it was simple to have some global variables when a lot of things were getting changed but it was kind of "namespace pollution."
There are also some libalpm functions that have been wrapped but aren't used anywhere I saw, perhaps they could be commented out in case they came in useful later which might cut build times by a tiny tiny amount. Possibly other unused things are around too. There are some parts of the code that only runs at build time though.
from pakku.
Thanks! I'll try to clean up the code when I have time. It seems there is not really anything to document, other that non-standard repos requiring specific support.
from pakku.
Related Issues (20)
- Not building on Arch/Mandriva HOT 1
- Arch binary building broken HOT 4
- LTO - link time optimization HOT 1
- cstring build warnings HOT 1
- Pakku unable to find packages HOT 9
- Default editor setting HOT 3
- man pages won't build with latest asciidoc 10.1.1-1 HOT 2
- Stable releases? HOT 10
- Dependency changes while editing the PKGBUILD are ignored. HOT 4
- segfault with 1.6.8 HOT 4
- Nim 2.0 support HOT 1
- pakku occasionally incorrectly identifies conflicting packages
- nondeterministic segfaults on 1.6.10 HOT 2
- pakku can't resolve a dependancy in 'extra' HOT 2
- Pakku may need to be updated to work with pacman 6.1 HOT 2
- Update needed due to pacman 14 HOT 2
- Any way to update like Arch way?
- Any way to update like Arch way? HOT 1
- Feature request: Project package tested & ready to perfect build on Msys2/Mingw64 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pakku.