When the code for makepnd becomes open, I'll contribute to make it support flat pnd and light pnds. We could have both on the repo and let the user choose.
This is a very good idea, and I completely support it.
https://github.com/Cloudef/makepnd
I already have test dev env also as well that I've been sharing on IRC. So far B-ZaR has been using it and been very pleased.
When I release PUR (AUR Clone), I'll release the env here as well and maybe do opkg feed for updates.
Theoretically you could do cross-compile env from the the dev env, but most likely many recipes will fail that way, so I suggest using distcc and fast hdd or SD (or tmpfs) instead, this way you can acquire near cross-compilation speed (of course distcc server will have cross-compiler, linking and configure is ran on pandora).
I'll make guides, best practices and standards for packaging when this is done, so no worry there though.
As for PUR, its code will show up eventually on my github as well, but here is sneak peek:
(python3 + bottle.py)
As for light pnds, you could acquire that by making another pnd without running the 'copy libs found by ldd and not in default OS' logic.
However some recipes may have libs that the logic can't detect in pnd_post_package() function (same so name, but newer minor version. Or lib compiled with hacks/optimizations whatever)
To fix this, I could create pnd_copy_libs() function which won't be run for light pnds, and recipe creators should put the lib copy there if needed..
Edit:
For light pnds I could just do cleanup post-trigger that cleans all so files in LD_PRELOAD path from PND actually..
No changes needed.
I come mainly from a commercial handheld/console background, and am used to having minimal dynamically linked stuff, and mainly trying to stick to a executable with as much statically linked as possible. From this background I have seen many cases where 50-100MB executables can be stripped down to 5-10MB with the right compile/link options. I wonder how much of this side of 'optimization' has been looked into? If we are creating PND's with 100's of MB's of dependency libraries I have to question what is going on. How on earth can there be that much compiled code? What is the break up of that code (text, data, debug information, etc.)?
GLhck is really static compile friendly, so some glhck games already out there for pandora (spacerocks, qb (eh?)) are mostly static compiled.
With makepnd you can also do ipk packages, and I should probably setup perhaps some git repo where we can share the recipes. Those ipks would contain both dynamic and static libs.
Currently I think makepnd strips .a files from package.. (Though it's user configurable switch, maybe this should be disabled when building ipks)
http://cloudef.eu/pandora/dchrt/ipk/ <- some of these are built with makepnd, those that are not are manually packaged and thus poor quality (not correct conflicts, depencies or provides in metadata etc..)