Revisiting ideas
Jeremy Huntwork
jhuntwork at linuxfromscratch.org
Wed Apr 30 00:51:38 MDT 2008
Hello,
So I finally got a free evening and the energy to sit down and get
conceptual. This is the result:
http://linuxfromscratch.org/~jhuntwork/php-test/
Before replying about all that you see is wrong with it ;) keep the
following in mind:
This is a rough draft! A proof-of-concept only, designed to show
possibilities and open up discussion/ideas. Think stick-figure.
Some random notes:
* Look out for subtle differences between architectures (notably the
dl name changes and there's an extra command for x86).
* The command explanations and descriptions are left out for the RPM
pages. Partly because I wanted to focus on the showing the creation and
use of the spec file, but also because I am uncertain at this point if
those notes should be comments in the spec file or if they should exist
similarly to the current book with the commands being continually
appended to the spec file. It is my full intention not to lose value of
the current LFS format, but rather to expand on it.
* As it is now, the RPM instructions aren't complete. There are some
useful (and even necessary) features of the spec file that were left out
for the sake of quickly illustrating the potential for dynamic
rendering. Also, the commands don't yet make use of any DESTDIR
features, although they will need to do so.
* The source files for the PHP are all viewable by appending an 's' to
the end of every php url. (You could begin with
http://linuxfromscratch.org/~jhuntwork/php-test/render.phps and work
your way through the includes)
To briefly describe the current process, the render page sets some
session variables based on the user's choices then includes the package
install file which contains arrays of arrays of commands for the
package. (This file also includes a data file which contains general
data about the package, version, size, url, description, etc.)
To illustrate:
The $pre array contains one array for each command that is done
pre-build, seds, patches, etc. Each of those arrays contains 2 or 3
keys: a description of the command, the actual command to run, and an
optional key containing a list of architectures this command applies to.
If there is no 'arch' key, then it applies to all.
If the idea of editing the php source is scary or distasteful, it is
totally conceivable to create a sort of Wiki interface to the pages.
General text would be editable much like any other wiki, but items that
are part of the core or need to be used in a dynamic way, such as
commands or package metadata could be 'objects' with parameters and
editable in a special way. (Not sure if I'm making this concept clear,
but with more time or discussion you should be able to see what I mean.)
Anyway. This was a start on realizing some of the ideas presented here a
month or so ago. I hope that we can build on some of that energy we saw
here instead of losing it completely.
--
JH
More information about the lfs-dev
mailing list