I don't know if PKGBUILD is better suited...
When it comes to change, I don't think there is such a thing as a "best way" or even a "better way" but here's my take on it:
PKGBUILD, PKGsrc, etc. all achieve their destinations based on assumptions that nothing has changed. For a good number of extensions, this likely holds true.
MY goal here is to take (approx) 6,000 individual extensions and run "logical" build scripts which eventually expand into AI (Automated Ingenuity - the other one doesn't really exist
)
Example: (I'm using dropbear because it currently doesn't require secondary dependencies)
Let's say 01-01-2024 dropbear_1.2.3.src.tar.gz compiles perfectly using glibc_a.b.c and gcc_d.e.f, make_1.2.3, etc. - we then have a
documented history of successes.
On 01-01-2025 our builder throws up a flag and tells us the newest stable release doesn't compile using newer ingredients as a foundation. We compare notes to find the sore spot(s):
Dropbear's build script (its filename) is sent to the Builder Network with a Research flag, meaning if/when it fails compiling attempt one of a dozen or more combinations to see if the NEW dropbear compiles with a slightly downgraded foundation, or if the OLDER Dropbear compiles with our newest foundation members.
- First, attempt to build the most recent successful, stable dropbear using the newer foundation items. Leave notes/findings for a developer to investigate once successful
- IF FAILED, downgrade each foundation item until we're successful again - leave notes for a developer to investigate
This is basically what the maintainer would be responsible for - updating scripts when change demands it of us; in this case, given a head start and notes as to what was already attempted and what the results were from those attempts.
PRO: With the automation hardware system we're building, a
ton of maintainer hours is expected to be alleviated. (This also costs $, so we're working on methods to cut this as well)
CON: There are still going to be apps which require hand-holding every so often to keep things compliant with our system. It's not yet "completely" hands free! It may never be.
PRO: The final stage of the project will be us creating a peer-to-peer-like volunteer network to assist with the cost of compiling (behind the scenes)
CON: ...assuming we can forcefully maintain security procedures as hacked extensions defeat us doing any of this in the first place.
@Rich: Yes, I have seen those pages/links and have already torn apart a hand-made template based on live source packages. There are exported variables I need to find out how they get from PKG to build scripts or however it works within arch/alpine/etc. (Thank you, though - every angle is appreciated!)
Example: $CHOST, $CBUILD, $CFLAGS, $CPPFLAGS and others are randomly spotted throughout some of their extensions, but PKG looks to be what creates these exports, so knowing where some of these defaults come from (and what their preferred defaults would be) would help me "see" what they were thinking when PKG was created. I have no clue as to whether there are cross-compilings going on or whether all of these scripts are being executed on end-user machines only... and being as I've never had reason to tinker with Arch/Alpine I've not had reason to break it apart before.
Here's a kicker: "
A PKGBUILD is a Bash shell script containing the build information required by Arch Linux packages." Terminology on G00gle is the same way... discussing the shell script(s) AS if they WERE pkgbuilds, so I'm going to have to launch a virtual of Arch/Alpine and do some open-heart to figure it all out with front row seats.
"
makepkg is a script to automate the building of packages. The requirements for using the script are a build-capable Unix platform and a PKGBUILD."
Again, they call makepkg a
script... and they talk about "...and a PKGBUILD" which makes me assume
these are PKGBUILDs to them.
If so, PKGBUILD <-- MakePKG <-- PacMan looks to be the method of the madness!
If anyone has arch/alpine installed, send in a copy of makepkg if you would! I haven't found a link to it yet and it doesn't spawn results on arch or alpine.I take that back, I MAY have
found something. LOL - all 2,400 lines of it.