s243a's Possible Plans for woof-next
Today, I started looking at my previous fork of woof next,
My latest code?
Old Murga-linux thread
Original Branch by Jamesbond
Official Fork into the Woof-CE project (i.e. zwn)
I've previously used the code to create:
http://wikka.puppylinux.com/Tiny_Puduan
Related threads:
tiny_puduan_ascii-PreAlpha11.5 (made via a woof-next fork)
alternative puppy build system
Woof-next was perhaps an effort by jamesbond to build an easier to maintain build system and served as a stepping stone for the fatdog64 build systems, which has code that originated from the woof-next branch. At one point on the murga-linux forum there was much interest in the woof-next branch because of the perceived difficulty of modifying Woof-CE for other use cases such as say a distro without a gui or one that is not debian or Slackware based.
Whether or not these criticisms are valid the design of woof-next is inherently more flexible because the build system resembles a domain-specific language used to build distributions.
When I built Tiny Puduan, I learned interesting things such as the differences between the tinycoure version of busybox and the puppylinux version and I was able to break up the rootfs of puppylinux into more modulre components. Unfortunately, I did so on code that wasn't the latest both because I used the main version for the woof-CE branch and also based some of it on the root-fs file system that mistfire selected in TazPup.
This illustrates the difficulty for an outsider trying to develop and maintain an alternative build system for a project that has a team of people working on it with likely more linux experience. My current idea to get around this challenge is to be more agnostic as to whether the build system is independent or derivative of the original Woof-CE project.
By this I mean that while I can have root-fs components incorporated into woof-next project, these should be optional so that One, could alternatively use an existing distro-ISO or build system as the starting point of the build and have woof-next add or remove components as needed to finish the ISO.
This way if woof-next development falls behind woof-CE then simply use woof-CE or alternatively an ISO generated from woof-CE as the starting point and remove/add what is needed. Scotmann's package manager (i.e. pkg) is a greater tool to remove unwanted software because it doesn't have the gui dependencies that the ppm has and doesn't care whether a package is user-installed or built-in provide the right options are supplied (e.g. the HIDE_BUILTINS environmental variable).
When adding packages to some base (e.g. a root-fs) one can either use the build tools included within woof-CE or use a package manager in a chroot environment. One simply needs a directive to change the install method, and then the rest of the specification should be mostly independent of the install method. One could even use puppy specific functions like petget and remove_builtin (check spelling) commands to strip away the puppy components as needed.