profile XML ideas

Gerard Beekmans gerard at linuxfromscratch.org
Thu Sep 7 12:26:32 PDT 2000


> As I understand it, XML is a "data structure description language" that
> basically allows an arbitrarily complex data structure to be represented in
> a standardized fashion.  It is NOT a scripting language.  On the other
> hand, it is extensible...  But the problem you run into is that if you just
> embed shell script commands into the xml, you aren't really utilizing xml,
> and you might as well just use a bunch of shell scripts.  It also takes
> away from the idea of "any type of back-end you want" because the back-end
> is then forced to do things a certain way, specifically by delegating the
> execution of the command to a shell script.

Sometimes you don't have a choice: you want every backend to run "make 
prefix=$LFS/usr". So I think that can be put in the XML profile between 
<configure> tags or whatever. But I think you got that idea as well as I see 
below in your sample profile.

> My thought was that we should go through every command in the book, and try
> to come up with a "tag" that refers to and abstracts it, if reasonable.
> Thus, you get tags for stuff like:

That's what I have been trying to do. I'm nowhere finished yet but the 
profile that i posted should give a general idea. If not, then I have to do a 
better job and fix it up.

> You would probably want a "command" tag for special stuff, like the 'yes ""
> | make config' command from the kernel source preparation section.

I'd think so yes.

>      <configure>    ./configure --prefix=/usr --with-ncurses </configure>

I had split that up in:
<configure> (or <prebuild> whichever)
	<command>./configure</command>
	<flags>--prefix=/usr --with-ncurses</flags>
</configure>

why that way? Well what if you just wnat to change the flags and not the 
commmad? Or the other way around (suppose you know there's a bug in some 
configure script so on floppy you have your own configure script that must be 
run instead of the one that comes with the package).

If you have everything in one tag, the front-end will give you this string to 
modify:
	./configure --prefix=/usr --with-ncurses

If you tell it specifically: i just want to change the command name, not the 
options. Then the front-end will give you just this string to modify:
	./configure

In the end it'll be less error prone (less places to make typo's in).

Your example is exactly as I have in mind, I just would break it up in 
smaller chunks you are able to modify exactly that what you want, nothing 
more, nothing less.

-- 
Gerard Beekmans
www.linuxfromscratch.org

-*- If Linux doesn't have the solution, you have the wrong problem -*-





More information about the alfs-discuss mailing list